Php 是否显示用PDO编码的SQL字符串?

Php 是否显示用PDO编码的SQL字符串?,php,sql,pdo,Php,Sql,Pdo,是否可以显示一个在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

是否可以显示一个在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();

提前感谢。

SQL字符串未被“编码”。占位符不是复制和粘贴插入。查询和值实际上是作为两个独立的部分发送到数据库的。数据库看到相同的“占位符查询”,并分别获取值。

SQL字符串未被“编码”。占位符不是复制和粘贴插入。查询和值实际上是作为两个独立的部分发送到数据库的。数据库会看到相同的“占位符查询”,并分别获取值。

如果您要求查看包含所有参数的最终“查询”,则无法从PHP代码中获取所需内容

预处理语句的工作方式是将带有参数占位符的基于数据库的查询发送到MySQL并“预处理”。对MySQL的后续调用只是传递参数本身。因此,包含参数的完整查询永远不存在


最好是登录MySQL查询日志(您可能必须配置MySQL以记录所有查询),在这里您将能够看到查询的最终解释表示。

如果您要求查看包含所有参数的最终“查询”,请,然后,您将无法从PHP代码中获得所需的内容

预处理语句的工作方式是将带有参数占位符的基于数据库的查询发送到MySQL并“预处理”。对MySQL的后续调用只是传递参数本身。因此,包含参数的完整查询永远不存在


最好是登录MySQL查询日志(您可能必须配置MySQL来记录所有查询),在这里您将能够看到查询的最终解释表示。

可能还需要提到模拟的准备模式,它同样不透明。让我们放弃模拟占位符,因为它们不应该被使用,它们也没有帮助o) 对。但根据OP问题的精神,在PDO执行其转义魔法后是否可以查看值?据我所知,即使使用模拟查询,也不可能。可能还需要提到模拟准备模式,它同样不透明。让我们放弃模拟占位符,因为它们不应该使用,也没有任何帮助o) 对。但从OP问题的精神来看,在PDO执行其转义魔法后是否可以查看值?据我所知,即使使用模拟查询,也不可能。查看查询的一个好方法是:echo str_replace(array_key($data)、array_value($data)、$requete->queryString);查看查询的一个好方法是:echo str_replace(数组_键($data)、数组_值($data)、$requete->queryString);