为了账号安全,请及时绑定邮箱和手机立即绑定

pdo执行多行sql语句时的问题

pdo执行多行sql语句时的问题

PHP
一只斗牛犬 2019-03-10 11:01:11
最近我在做PHP程序时遇到了一个问题,举个例子: //开始查询前两个值 $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); //开始查询后一个值 $pre=$pdo->prepare(' SELECT * FROM `abc` WHERE `id`=3; '); $pre->execute(); $id3=$pre->fetch(PDO::FETCH_ASSOC); 这样可以正常返回$id1和$id2的结果。但如果在第一次查询时不执行$pre->nextRowset();只查询$id1的话,像这样: //开始查询前两个值 $pre=$pdo->prepare(' SELECT * FROM `abc` WHERE `id`=1; SELECT * FROM `abc` WHERE `id`=2; '); $pre->execute(); $id1=$pre->fetch(PDO::FETCH_ASSOC); //这次我不查询id2 //开始查询后一个值 $pre=$pdo->prepare(' SELECT * FROM `abc` WHERE `id`=3; '); $pre->execute(); $id3=$pre->fetch(PDO::FETCH_ASSOC); 会导致$id3的值为空。请问这是什么原理?$pdo对象必须完整读取到尾部,否则下次执行就会失败吗?谢谢各位!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 460 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信