ホームページ >バックエンド開発 >PHPチュートリアル >pdoのprepareの使い方について教えてください

pdoのprepareの使い方について教えてください

WBOY
WBOYオリジナル
2016-06-23 14:02:26881ブラウズ

アドバイスを求める初心者です。
この書き方と同様、つまり複数の 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();

を使用して、1 つのクエリでパラメーターを含むページング関数を実装したいと考えています

誰も残っていない...

If your SQLコマンドは # 1 です。ごめんなさい!
select FOUND_ROWS() は、一度に 1 つの命令のみを実行するというセキュリティ規約に違反するため、実行のために mysql に送信されません

2 つの命令をストアド プロシージャ

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() は、一度に 1 つの命令のみを実行するというセキュリティ規約に違反するため、実行のために mysql に送信されません

2 つの命令をストアド プロシージャとして記述することができます SQL コード?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 コマンドを実行できます。もちろん、安全性はあなたの責任です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。