我有以下代码:
if(isset($_GET['q'])){
$sql = "SELECT klantnr, persnr, naam, voornaam FROM gegevens WHERE voornaam LIKE % :voorwaarde % OR naam LIKE % :voorwaarde %";
$stmt = $db->prepare($sql);
$stmt->bindParam(':voorwaarde', $_GET['q']);
$stmt->bindParam(':voorwaarde', $_GET['q']);
echo $stmt->queryString;
$stmt->execute();
$pers = $stmt->fetchAll();
print_r($pers);
}
但是从 queryString 函数显示的查询仍然是:
SELECT klantnr, persnr, naam, voornaam FROM gegevens WHERE voornaam LIKE % :voorwaarde % OR naam LIKE % :voorwaarde %
最佳答案
您正在使用准备好的语句。这意味着查询具有将被数据库替换的占位符。这不会修改您的查询字符串。
使用 $stmt->debugDumpParams();
查看绑定(bind)的参数。
关于mysql - PHP PDO bindParam 不修改查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29298714/