ホームページ >バックエンド開発 >PHPチュートリアル >PHP が複数のストアド プロシージャを呼び出したときに接続が閉じないようにする方法。
PHP ファイルでは複数のストアド プロシージャが使用され、各ストアド プロシージャは個別のデータ接続を確立する必要があります。
$pdobakpro = 新しい PDO('mysql:host=localhost;dbname=test','root','123456');
$sql1 = "call pro_1()"; $stmt1 = $pdobakpro->query ( $sql1);
var_dump($stmt1);
$sql2 = "call pro_2()";
var_dump($stmt2);データベース内のストアド プロシージャに PDO 接続を使用しますか?ありがとう。
ディスカッションへの返信 (解決策)
各ストアド プロシージャで個別のデータ接続を作成する必要があるのはなぜですか? $stmt1 と $stmt2 の両方がリソースを返しませんか?
上記のコードでは、$stmt2 はリソースを返すことができません
$pdobakpro2 = new PDO('mysql:host=localhost;dbname=test','root','123456') ;
$sql2 = "call pro_2()";
$stmt2 = $pdobakpro2->query($sql2);
var_dump($stmt2);
他の友人もこの問題に遭遇しました。彼のことを理解できませんでした 解決策
http://www.cnblogs.com/fightLonely/archive/2011/08/12/2136556.html
$stmt1 を取得した後で読み上げてみませんか?
$stmt1 を入手したら読み上げてみてはいかがでしょうか?
ここで、適用する必要がある非常に長い SQL ステートメントがいくつかあります。異なる場所にあるため、共通に使用し、デバッグを容易にするために、ストアド プロシージャとして作成したいと思います。
データベース接続で 1 つのストアド プロシージャのみを実行できるというわけではありません
が、前のラウンドのクエリ結果が読み取られるまで次のクエリ ラウンドを実行できないということです
このような制約がある理由は非常に単純です。クエリ結果セット