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 字符串没有被“编码”。占位符不是复制粘贴插入。查询和值实际上是作为两个独立的部分发送到数据库的。数据库看到相同的“占位符查询”并分别获取值。

于 2012-12-10T18:44:45.797 回答