0

如何从 mysql 查询中选择一行并使用 PDO 将其保存到变量中?以前我是这样做的

$row = mysql_fetch_array($result);

  $ID = $row['ID'];

现在我阅读了PDOStatement::fetch()替代的 PHP 手册,mysql_fetch_array但我不知道如何使用它。这是我尝试过的,但显然它不起作用

 <?php
include 'config.php';

$sql = "select * from table1";

try {
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);  
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $dbh->query($sql);  
    $result = $stmt->fetchAll(PDO::FETCH_OBJ);
    $dbh = null;
    echo '{"items":'. json_encode($result) .'}'; 
} catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
}

$row = $stmt->fetchAll(PDO::FETCH_OBJ);
  $ID = $row['ID'];


?>
4

1 回答 1

0

如果您使用PDO::FETCH_OBJ,则必须使用对象表示法来检索结果中的元素。由于您已经调用了一个fetchAll()方法,因此以后不能再调用另一个 fetch/fetchAll 方法,因为数据将不再可访问。

代替$row = $stmt->fetchAll(PDO::FETCH_OBJ);,迭代$result您之前fetchAll()返回的变量:

foreach($result as $row)
{
    $ID = $row->ID;
    // Etc...
}
于 2012-06-26T06:02:10.973 回答