无法使用PDO返回多行

时间:2016-10-18 15:24:24

标签: php pdo

我试图在循环内使用(客户端)PHP PDO对MS SQL服务器数据库执行简单查询,但我无法检索多条记录。

外部循环有几十万次迭代(不使用PDO),内部PDO获取循环应该为每次外部迭代返回2-4条记录。

这就是我所拥有的,不确定我做错了什么:

$dbh = '';
try {      
  $dbh = new PDO("sqlsrv:Server=mysqlserver, 1433;Database=mydatabase", '', '');
}
catch(Exception $e) {
     echo "Error connecting to MS SQL database.";
     error_log($e);
     exit;
}

$foreign_keys = array(1563,89563,98272634); // etc..  The actual keys used here are obtained with other code not related to the problem.
foreach($foreign_keys as $foreign_key){        
    $sth = $dbh->prepare("select col1 from one_to_many_table where foreign_key=?");
    $sth->bindParam(1, $foreign_key );
    $sth->execute();
    // expecting 2+ rows here ..
    while($result = $sth->fetch( PDO::FETCH_ASSOC )){                
            echo $foreign_key.', '.$result['col1']."\n";                
    }
}

// Output:
// 1563, {value for col1}  // first outer iteration, first PDO record returned
// --END -- Nothing else

我只从外循环的第一次迭代中获取从PDO获取返回的第一条记录。

我没有在屏幕上或错误日志中显示任何错误。

我在使用PHP 5.6.26(cli)的Windows 7计算机上从CMD行运行此脚本。

0 个答案:

没有答案