【问题标题】:fetchAll() returns array with 0 value (PDO)fetchAll() 返回值为 0 的数组 (PDO)
【发布时间】:2014-03-06 02:40:39
【问题描述】:

我正在尝试将值绑定到 SQL 语句中。它似乎没有约束力,或者正在工作并且由于我不知道的原因没有返回所需的数据。这是我的代码:

$search_string = 'turkey';

// Gathers the bird ID through searched name
$birdID = $conn->prepare("SELECT `id` FROM `birds` WHERE `bird_name` LIKE :birdName ;");    
$birdID->execute(array(':birdName' => '%'.$search_string.'%'));  
$returnBirdID = $birdID->fetchAll(PDO::FETCH_BOTH);

foreach($returnBirdID as $birdID){
    $birdsID[] = $birdID;
}

这里需要注意的重要一点是 var_dump($birdsID) 按预期返回一个数组。

我有另一个类似于上面的代码块,它根据状态缩写检索数据,例如“纽约”。为简洁起见将其省略(几乎与上述相同)。

// Build query for binding.

$sql = "
              SELECT t.state_id,t.bird_id
              FROM table1
              WHERE bird.id = :birdID 
              AND states.id = :statesID ;
          ";
$query = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$query->execute(array(':birdID'=>$birdsID,':statesID'=>$statesID));// Think this line may be the problem...
$results = $query->fetchAll(PDO::FETCH_BOTH);

foreach($results as $getID){
    $getIDs[] = $getID;
}

var_dump($getIDs) 在这里返回 NULL。我认为它可能与 :birdID'=>$birdsID 不接受 $birdsID 作为值有关,因为它本身就是一个数组。但是将其编码为 $birdsID[0] 也不起作用。不知道怎么回事!

呼……已经为此工作了好几个小时。如果没有意义,对不起!脑油炸了。

【问题讨论】:

  • 请注意标签不是关键字。在标签列表中塞满与您的问题中相同的单词将无助于对其进行分类。相反,请使用与您的代码示例相关的语言、库和方法名称。请务必阅读选择标签时出现的说明!
  • 它会将您的 $birdsID 参数值转换为 Array() 或类似的值。我怀疑这将匹配任何记录。假设$birdsID在索引0处至少包含一个条目,那么$birdsID[0]应该在execute数组中工作
  • $search_string = '%turkey%'; ....$birdID->execute(array(':birdName' => $search_string));

标签: php pdo


【解决方案1】:

在 PDO 标记(信息)中,您将找到在参数中使用通配符的正确过程。

$search_string = '%turkey%';

// Gathers the bird ID through searched name
$birdID = $conn->prepare("SELECT `id` FROM `birds` WHERE `bird_name` LIKE :birdName ;");    
$birdID->execute(array(':birdName' => $search_string));  
$returnBirdID = $birdID->fetchAll(PDO::FETCH_BOTH);

foreach($returnBirdID as $birdID){
    $birdsID[] = $birdID;
}

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 2013-04-21
    • 2014-05-01
    • 2016-12-11
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多