准备好PDOStatement查询

时间:2018-03-01 17:25:58

标签: php sql pdo

我有一个带有绑定参数的PDOStatement:

$stmt = $co->prepare("SELECT * FROM Person WHERE age=:age");
$stmt->bindValue(':age','18',PDO::PARAM_STR);

现在我想获得执行的实际SQL查询:

SELECT * FROM Person WHERE age=18

我已经尝试了print_r($stmt);,但它只打印出我在prepare()方法中添加的相同文字,即18未插入查询中。

我也尝试了这个解决方案$stmt->debugDumpParams();,但是,它还没有给出给定参数的值。

在查询中自愿出错并打印错误消息是我最接近解决方案:

$stmt = $co->prepare("ELECT * FROM Person WHERE age=:age"); //I removed the 'S' of 'SELECT'
$stmt->bindValue(':age','18',PDO::PARAM_STR);
try {
    $stmt->execute();
} catch (PDOException $e) {
    echo $e->getMessage();
}

标准输出:

Error!: [...] near 'ELECT * FROM Person WHERE age=18' at line 1

但是这个方法的问题是它只打印查询的前80个字符。显然在我的查询中它运行良好,但我想使用更长的查询。

感谢您的帮助。

0 个答案:

没有答案