PHP PDO mysql_data_seek

时间:2013-02-18 23:13:48

标签: php mysql pdo prepared-statement

我正在转换一些代码来访问数据库到PDO。我遇到过以下情况:

mysql_data_seek($result, 0);
$row0 = mysql_fetch_assoc($result);

根据我在Google等上的阅读,我明白这应该是:

$row0 = $result->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 0);
然而,这不起作用。我有什么想法吗?

2 个答案:

答案 0 :(得分:1)

查询的第一个选项:

您可以直接迭代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'];

答案 1 :(得分:1)

来自手册;

  

从与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