如何从mysql查询中选择一行并使用PDO将其保存到变量?以前我这样做了
$row = mysql_fetch_array($result);
$ID = $row['ID'];
现在我从PHP手册中读到PDOStatement::fetch()
替代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'];
?>
答案 0 :(得分:0)
如果您使用PDO::FETCH_OBJ
,则必须使用对象表示法来检索结果中的元素。由于您已经调用了fetchAll()
方法,因此无法再访问其他fetch / fetchAll方法,因为无法再访问数据。
代替$row = $stmt->fetchAll(PDO::FETCH_OBJ);
,迭代您之前$result
返回的fetchAll()
变量:
foreach($result as $row)
{
$ID = $row->ID;
// Etc...
}