我觉得自己缺少某些东西。
我正在尝试使用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
您没有得到$te
代替:user
。使用准备好的语句时,首先将语句与占位符一起发送到服务器(转换为MySQL的问号,因为它不是本地支持的占位符),然后在执行execute()
时分别将数据发送到服务器。这就是他们的工作方式。如果需要实际值而不是占位符,则需要启用MySQL日志记录并检查服务器日志,但是如果启用了PDO模拟查询,则只会看到实际的SQL语句。