mysql - PHP PDO bindParam 不修改查询

标签 mysql database pdo prepared-statement bindparam

我有以下代码:

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/

相关文章:

python - 从 MySQL(SQLAlchemy) 读取数据后需要帮助编写 bonobo XML writer 转换

database - SQL Server 2008 r2合并两个数据库的过程是怎样的?

php - MySQL中获取部分行的平均值和单行的值

database - 创建包含数百万个文档的初始 CouchDB 数据库

mysql - 仅针对受影响的行在更新后触发

php - 更改 mysql -joomla 中的文件名并存储在数据库中具有唯一的名称?

sql - 选择两列之和的最大值

php - 带有 jquery 的数据库灯箱仅显示数据库的第一个条目

php - 在 mysqli 中带参数执行

php - 使用 pdo_mysql 属性时收到 PHP fatal error