PHP类数组问题

时间:2011-06-12 05:24:25

标签: php arrays class

出于某种原因,我回来的阵列不是我所期望的。有人可以向我解释为什么我得到当前的结果,以及我可以做些什么来解决它?以下是有问题的代码:

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

我只想显示关联结果。我的功能出了什么问题?

2 个答案:

答案 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