0

このような準備されたパラメーターを使用して PDO でコーディングされた SQL 文字列を表示することは可能ですか? :

$nom_client = $dbh->prepare("SELECT  client.IdClient,Nom_societe FROM client 
                                            LEFT JOIN intermediaire_has_client ON IdClient=intermediaire_has_client.Client_IdClient
                                            WHERE intermediaire_has_client.Intermediaire_IdIntermediaire=:id_inter");

$nom_client->bindValue(":id_inter",$_SESSION['num_agence'],PDO::PARAM_INT);
$nom_client->execute();

前もって感謝します。

4

2 に答える 2

2

すべてのパラメーターを含む最終的な「クエリ」を表示するように求めている場合、PHP コード内から求めているものを取得することはできません。

準備されたステートメントが機能する方法は、パラメーター プレースホルダーを含むベースのクエリが MySQL に送信され、「準備」されることです。MySQL への呼び出しに続いて、パラメーター自体を渡すだけです。そのため、パラメータを含む完全なクエリは存在しません。

最良の方法は、MySQL クエリ ログにログインすることです (すべてのクエリをログに記録するように MySQL を構成する必要がある場合があります)。ここで、クエリの最終的に解釈された表現を確認できます。

于 2012-12-10T18:46:59.790 に答える
1

SQL文字列は「コーディング」されていません。プレースホルダーは、コピーアンドペーストの挿入物ではありません。クエリと値は、実際には2つの別々の部分としてデータベースに送信されます。データベースは同じ「プレースホルダークエリ」を認識し、値を個別に取得します。

于 2012-12-10T18:44:45.797 に答える