1

我正在尝试productnames从我的 MySQL 表中返回所有内容。目前这只返回列中的名字

public function selectAll () 
{

    $stmt = Database::get()->query('SELECT * FROM retrofootball_products');
    while($row = $stmt->fetch())
    {
        return $row['productname'];

    }
}

如何让它循环并选择所有产品名称?

4

5 回答 5

3

您可以做的一种方法是仅选择productname列,然后使用$stmt->fetchAll(PDO::FETCH_ASSOC).

public function selectAll () 
{
    $stmt = Database::get()->query('SELECT `productname` FROM retrofootball_products');

    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
于 2013-01-07T05:09:24.187 回答
1

做:

public function selectAll () {

    $stmt = Database::get()->query('SELECT * FROM retrofootball_products');
    $allCols = array();
    while($row = $stmt->fetch()) {
        $allCols[] = $row['productname'];
    }
    return $allCols;
}
于 2013-01-07T05:03:14.430 回答
1

您直接返回导致问题的第一个值。将每条记录存储在数组中并返回该数组。

public function selectAll () 
{

$stmt = Database::get()->query('SELECT * FROM retrofootball_products');
while($row = $stmt->fetch())
{
    $arr[] = $row['productname'];

}
return $arr;
}
于 2013-01-07T05:03:43.677 回答
0

您可以在使用 PDO 并使用 fetchAll 时避免循环。

public function selectAll () 
{

    $stmt = Database::get()->query('SELECT * FROM retrofootball_products');
    return $stmt->fetchAll();
}

http://php.net/manual/en/pdostatement.fetchall.php

于 2013-01-07T05:07:40.740 回答
-1

虽然我也是 stmp 的新手,但我想这可能会奏效

$result = $stmt->get_result();
while ($row = $result->fetch_assoc())
{
// do something with $row
}
于 2013-01-07T05:03:53.330 回答