Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 方法“;moveFirst();ADODB,PDO等价_Php_Sql_Pdo_Adodb - Fatal编程技术网

Php 方法“;moveFirst();ADODB,PDO等价

Php 方法“;moveFirst();ADODB,PDO等价,php,sql,pdo,adodb,Php,Sql,Pdo,Adodb,目前我在项目中使用ADODB库与数据库集成。 我想迁移到PDO,但我有一个关于协商的问题 目前,我使用ADODB进行查询,并使用方法MoveFirst()多次使用集合中的行 例如: //I consultation $rs = $conn->execute('select * from mytable'); //Loop through the results while(!$rs->EOF) { echo $rs->fields('name'); $rs-&

目前我在项目中使用ADODB库与数据库集成。 我想迁移到PDO,但我有一个关于协商的问题

目前,我使用ADODB进行查询,并使用方法MoveFirst()多次使用集合中的行

例如:

//I consultation
$rs = $conn->execute('select * from mytable');

//Loop through the results
while(!$rs->EOF) {
    echo $rs->fields('name');
    $rs->MoveNext();
}

//I move the "pointer" to the beginning of the list
$rs->MoveFirst();

//I can go over the results without needing to re-select
while(!$rs->EOF) {
    echo $rs->fields('name');
    $rs->MoveNext();
}
我不知道PDO中是否有类似的方法,因此我不需要再次运行查询。
我们的目标是避免更多地在工作台上执行不必要的查询,因为它们使用相同的查询。

我不确定为什么要在数据库连接上多次循环使用结果集。当您可以第一次检索并保存数据时,为什么还要再次通过网络拉取数据?但您需要的是一个可滚动的光标,mysql不支持它。至少不通过任何PHP/MySQL驱动程序。您可能还想查看PDO支持的缓冲/非缓冲查询

PDO::光标滚动

我们的目标是不必执行例程将结果存储在第一个循环中,因为我可以访问ADODB中设置的行多少次。每次我想在PDO中不止一次地使用一个结果时,我都必须执行一个例程,将结果存储在数组或其他东西中,以便使用第二次或更多次。您有一个使用PDO::CURSOR_滚动的示例吗?