PHP PDO和bindParam()

时间:2014-03-09 00:56:20

标签: php mysql pdo

我觉得我错过了什么。

我正在尝试将:分隔符与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

展示

1 个答案:

答案 0 :(得分:1)

您无需显示$te代替:user。使用预准备语句时,首先将语句发送到带有占位符的服务器(转换为MySQL的问号,因为它本身不支持命名占位符)然后在执行{{1}时单独将数据发送到服务器}。这就是他们的工作方式。如果您想要实际值而不是占位符,则需要启用MySQL日志记录并检查服务器日志,但是如果启用了PDO模拟查询,您将只看到实际的SQL语句。