菜鸟求教,
类似这种写法,即同时查询多个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 指令。当然,安全性得由你自己负责了
了解了解,谢谢!!!
能不能再帮我看看这个问题?不胜感激!!!
http://bbs.csdn.net/topics/390388184
你试试不就行了?
php 不允许一次执行一条以上的 sql 指令,完全是出于防止 sql攻击 的考虑
如果你使用 mysqli 扩展,倒是可以用 mysqli_multi_query 一次执行多条 sql 指令。当然,安全性得由你自己负责了
你试试不就行了?
php 不允许一次执行一条以上的 sql 指令,完全是出于防止 sql攻击 的考虑
如果你使用 mysqli 扩展,倒是可以用 mysqli_multi_query 一次执行多条 sql 指令。当然,安全性得由你自己负责了