Heim > Backend-Entwicklung > PHP-Tutorial > 请教关于pdo的prepare用法

请教关于pdo的prepare用法

WBOY
Freigeben: 2016-06-23 14:02:26
Original
880 Leute haben es durchsucht

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

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


回复讨论(解决方案)

我主要是想用

select SQL_CALC_FOUND_ROWS * from table limit 1,10;select FOUND_ROWS();
Nach dem Login kopieren

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

都没人了啊……

如果你的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;// 
Nach dem Login kopieren
后这样执行
$queryString = 'call test();';$query = $dbh->query($queryString);do {  $rows = $query->fetchAll();  print_r($rows);}while($query->nextRowset());
Nach dem Login kopieren

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

    begin      select SQL_CALC_FOUND_ROWS * from table limit 1,10;      select FOUND_ROWS();    end;
Nach dem Login kopieren

这样的呢?

本帖最后由 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 指令。当然,安全性得由你自己负责了

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage