我正在将一些代码转换为 PDO 访问数据库。我遇到了以下情况:
mysql_data_seek($result, 0);
$row0 = mysql_fetch_assoc($result);
根据我在 Google 等上的阅读,我知道这应该是:
$row0 = $result->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 0);
但是这不起作用。任何想法我做错了什么?
我正在将一些代码转换为 PDO 访问数据库。我遇到了以下情况:
mysql_data_seek($result, 0);
$row0 = mysql_fetch_assoc($result);
根据我在 Google 等上的阅读,我知道这应该是:
$row0 = $result->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 0);
但是这不起作用。任何想法我做错了什么?
查询的第一个选项:
您可以直接迭代query
结果..
foreach ($db->query($sql) as $row) {
echo $row['FirstName'];
}
执行的第二个选项:
$sth = $db->prepare($sql);
$sth->execute();
$row = $sth->fetch(PDO::FETCH_ASSOC); // fetch the next row from statement
echo $row['FirstName'];
从手册;
从与 PDOStatement 对象关联的结果集中获取一行。fetch_style 参数确定 PDO 如何返回行。
你需要一个stmt
由PDO::prepare
方法创建的。
让我们看看这个;
// assuming $pdo was created before as well
$sth = $pdo->prepare("SELECT name, colour FROM fruit");
// exec here
$sth->execute();
// get a row here
$row = $sth->fetch(PDO::FETCH_ASSOC);
// here probably you'll get a print out like
// Array([name] => Banana, [color] => Yellow)
print_r($row);
在此处查看更多详细信息:PHP PDOStatement::fetch