ホームページ >バックエンド開発 >PHPチュートリアル >SQL ステートメントを再利用する方法についてアイデアを教えてください。
現在、さまざまな場所に適用する必要がある非常に長い SQL ステートメントがいくつかあるため、それらをストアド プロシージャに書き込み、共通に使用し、デバッグを容易にしたいと考えています。
ストアド プロシージャは記述できましたが、PHP を使用してそれを呼び出すと、ストアド プロシージャを呼び出すたびに新しいデータ接続を作成する必要があり、面倒でリソースの消費が多すぎます。 SQL ステートメントを再利用するより良い方法、または接続を閉じずにストアド プロシージャを呼び出す PHP ページを処理する方法はありますか。ありがとう!
現在の実装方法は次のとおりです。
$pdobakpro1 = new PDO('mysql:host=localhost;dbname=test','root','123456');
$pdobakpro2 = new PDO('mysql:host) =localhost; dbname=test','root','123456');
$sql1 = "call pro_1()";//ストアド プロシージャとデータベース接続
$stmt1 = $pdobakpro1->query( $sql1);
var_dump($stmt1);
$sql2 = "call pro_2()";// 2 番目のストアド プロシージャを呼び出すには、新しいデータベース接続を作成する必要があります
$stmt2 = $pdobakpro2-> ;query($sql2) ;
var_dump($stmt2);
ディスカッションに返信 (解決策)
そして
$pdobakpro1 = new PDO('mysql:host=localhost;dbname=test','root','123456');
および
$pdobakpro1 = 新しい PDO('mysql:host=localhost;dbname=test','root','123456');
$pdobakpro2 = クローン $ pdobakpro1;
は同じです
「リソースを過剰に消費する」ということはありません
そして
$pdobakpro1 = new PDO('mysql:host=localhost;dbname=test','root','123456');
および
$pdobakpro1 = 新しい PDO('mysql:...
ありがとう、わかりました、バージョンさんの意味が分かりました。
誰もが PHP を使用してこのようにストアド プロシージャを呼び出しているかどうかを知りたいだけです。1 つのストアド プロシージャがデータベースに一度接続されます。あるいは、私が間違ったことをした。
ストアド プロシージャは複数の結果セットを返すことができます
私が理解できないのは、なぜ 1 つを処理して次のストアド プロシージャを実行するのではなく、無関係なストアド プロシージャを一緒に実行する必要があるのかということです