出于某种原因,我回来的阵列不是我所期望的。有人可以向我解释为什么我得到当前的结果,以及我可以做些什么来解决它?以下是有问题的代码:
public static function getProduct($_row, $_value)
{
$stmt = _DB::init()->prepare("SELECT pid, name, quantity, price, cost
FROM products
WHERE $_row = ?"
);
if($stmt->execute(array($_value)))
{
while ($row = $stmt->fetch())
return $row;
}
}
$product = Class::getProduct('pid',1);
print_r($product);
当我打印下面的数组时,我每行得到两个结果:
Array ( [pid] => 1 [0] => 1 [name] => Boondoggle [1] => Boondoggle [quantity] => 12 [2] => 12 [price] => 9.9900 [3] => 9.9900 [cost] => 12.9900 [4] => 12.9900 ) Boondoggle
我只想显示关联结果。我的功能出了什么问题?
答案 0 :(得分:1)
将PDO :: FETCH_ASSOC传递给您的提取呼叫:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
编辑:我只是假设你正在使用PDO,当然
答案 1 :(得分:1)
从外观上看,您正在使用PDO与DBMS进行通信。 PDOStatement :: fetch()方法的第一个参数是一个告诉它返回什么的参数。默认情况下,它以名称格式和编号索引格式返回每个列,以便更轻松地遍历列。要将列名称作为索引,您可以将PDO :: FETCH_ASSOC传递给您的调用。所以fetch语句看起来像这样:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)
请点击此处了解更多详情: http://www.php.net/manual/en/pdostatement.fetch.php