我正在尝试从MySQL表中返回所有productnames
。目前,这仅返回列
public function selectAll ()
{
$stmt = Database::get()->query('SELECT * FROM retrofootball_products');
while($row = $stmt->fetch())
{
return $row['productname'];
}
}
如何让它循环并选择所有产品名称?
答案 0 :(得分: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);
}
答案 1 :(得分:1)
做的:
public function selectAll () {
$stmt = Database::get()->query('SELECT * FROM retrofootball_products');
$allCols = array();
while($row = $stmt->fetch()) {
$allCols[] = $row['productname'];
}
return $allCols;
}
答案 2 :(得分:1)
您正在直接返回导致问题的第一个值。 将每个记录存储在数组中并返回该数组。
public function selectAll ()
{
$stmt = Database::get()->query('SELECT * FROM retrofootball_products');
while($row = $stmt->fetch())
{
$arr[] = $row['productname'];
}
return $arr;
}
答案 3 :(得分:0)
当你使用PDO并使用fetchAll时,你可以避免循环。
public function selectAll ()
{
$stmt = Database::get()->query('SELECT * FROM retrofootball_products');
return $stmt->fetchAll();
}
答案 4 :(得分:-1)
虽然我也是新手,但我想这可能有用
$result = $stmt->get_result();
while ($row = $result->fetch_assoc())
{
// do something with $row
}