最近我在做PHP程序時(shí)遇到了一個(gè)問題,舉個(gè)例子:
//開始查詢前兩個(gè)值
$pre=$pdo->prepare('
SELECT * FROM `abc` WHERE `id`=1;
SELECT * FROM `abc` WHERE `id`=2;
');
$pre->execute();
$id1=$pre->fetch(PDO::FETCH_ASSOC);
$pre->nextRowset();
$id2=$pre->fetch(PDO::FETCH_ASSOC);
//開始查詢后一個(gè)值
$pre=$pdo->prepare('
SELECT * FROM `abc` WHERE `id`=3;
');
$pre->execute();
$id3=$pre->fetch(PDO::FETCH_ASSOC);
這樣可以正常返回$id1和$id2的結(jié)果。但如果在第一次查詢時(shí)不執(zhí)行$pre->nextRowset();只查詢$id1的話,像這樣:
//開始查詢前兩個(gè)值
$pre=$pdo->prepare('
SELECT * FROM `abc` WHERE `id`=1;
SELECT * FROM `abc` WHERE `id`=2;
');
$pre->execute();
$id1=$pre->fetch(PDO::FETCH_ASSOC);
//這次我不查詢id2
//開始查詢后一個(gè)值
$pre=$pdo->prepare('
SELECT * FROM `abc` WHERE `id`=3;
');
$pre->execute();
$id3=$pre->fetch(PDO::FETCH_ASSOC);
會導(dǎo)致$id3的值為空。請問這是什么原理?$pdo對象必須完整讀取到尾部,否則下次執(zhí)行就會失敗嗎?謝謝各位!
- 1 回答
- 0 關(guān)注
- 481 瀏覽
添加回答
舉報(bào)
0/150
提交
取消