• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

请教关于pdo的prepare用法

php 搞代码 3年前 (2022-01-23) 18次浏览 已收录 0个评论
文章目录[隐藏]

菜鸟求教,
类似这种写法,即同时查询多个SQL,用prepare该怎么取结果集啊?

$dbh = new PDO($dbConnString, $dbInfo['username'], $dbInfo['password']);$query = $dbh->query($queryString);$i = 0;foreach ($query as $query2) {  $queryReturn[$i] = $query2;  $i++;}

回复讨论(解决方案)

我主要是想用

select SQL_CALC_FOUND_ROWS * from table limit 1,10;select FOUND_ROWS();

一次查询实现带参数的分页功能

都没人了啊……

如果你的sql指令就是#1的样子,那么对不起!
select FOUND_ROWS() 不会被发送到mysql去执行,因为他违反了一次只执行一条指令的安全约定

你可以将你的这两条指令写成存储过程

delimiter //CREATE PROCEDURE `test`()begin  select SQL_CALC_FOUND_ROWS * from table limit 1,10;  select FOUND_ROWS();end;// 

后这样执行

$queryString = 'call test();';$query = $dbh->query($queryString);do {  $rows = $query->fetchAll();  print_r($rows);}while($query->nextRowset());

谢谢xuzuning,那如果不用存储过程,用类似

    begin      select SQL_CALC_FOUND_ROWS * from table limit 1,10;      select FOUND_ROWS();    end;

这样的呢?

本帖最后由 xuzuning 于 2013-03-11 09:05:47 编辑
如果你的sql指令就是#1的样子,那么对不起!
select FOUND_ROWS() 不会被发送到mysql去执行,因为他违反了一次只执行一条指令的安全约定

你可以将你的这两条指令写成存储过程SQL code?1234567delimiter //CR……

你试试不就行了?

php 不允许一次执行一条以上的 SQL 指令,完全是出于防止 SQL攻击 的考虑

如果你使用 mysqli 扩展,倒是可以用 mysqli_multi_query 一次执行多条 SQL本@文来源[email protected]搞@^&代*@码网(搞代gaodaima码 指令。当然,安全性得由你自己负责了

了解了解,谢谢!!!

能不能再帮我看看这个问题?不胜感激!!!

http://bbs.gaodaima.com/topics/390388184

你试试不就行了?

php 不允许一次执行一条以上的 SQL 指令,完全是出于防止 SQL攻击 的考虑

如果你使用 mysqli 扩展,倒是可以用 mysqli_multi_query 一次执行多条 SQL 指令。当然,安全性得由你自己负责了

你试试不就行了?

php 不允许一次执行一条以上的 SQL 指令,完全是出于防止 SQL攻击 的考虑

如果你使用 mysqli 扩展,倒是可以用 mysqli_multi_query 一次执行多条 SQL 指令。当然,安全性得由你自己负责了


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:请教关于pdo的prepare用法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址