我觉得我错过了什么。
我正在尝试将:
分隔符与bindParam一起使用,但是我的成功不成功。
PHP:
$te = 'test';
$tesql = "select charname from characters where username = :user;";
$stmt = $db->prepare($tesql);
$stmt->bindParam(':user',$te,PDO::PARAM_STR,100);
$stmt->execute();
echo $stmt->queryString;
queryString
显示:
select charname from characters where username = :user;
如何让$te
代替:user
答案 0 :(得分:1)
您无需显示$te
代替:user
。使用预准备语句时,首先将语句发送到带有占位符的服务器(转换为MySQL的问号,因为它本身不支持命名占位符)然后在执行{{1}时单独将数据发送到服务器}。这就是他们的工作方式。如果您想要实际值而不是占位符,则需要启用MySQL日志记录并检查服务器日志,但是如果启用了PDO模拟查询,您将只看到实际的SQL语句。