debug sql 语句 - 参数值
debug sql statements - parameter values
我有这个sql声明:
try {
$sql = $db->prepare( "INSERT INTO myTable (column_a) VALUES (:value_a)" );
$sql->execute( array(
":value_a" => $value_a
));
} catch (PDOException $e) {
echo $e->getMessage();
}
在 catch 块中,我收到 sql 错误消息。
但我想知道,哪些参数和哪些值被发送到数据库。
有解决办法吗?
由于您是在 try-clause 之前准备变量,因此您也可以将它们转储到 catch 中。
try {
$sql = $db->prepare( "INSERT INTO myTable (column_a) VALUES (:value_a)" );
$sql->execute( array(
":value_a" => $value_a
));
} catch (PDOException $e) {
var_dump($e->getMessage(), $value_a);
}
此外,如果您使用 PHP 5.4 或更高版本(我真的希望更高),您 could/should 对数组使用短语法。它只是更好,更容易阅读。
$sql->execute([":value_a" => $value_a]);
我有这个sql声明:
try {
$sql = $db->prepare( "INSERT INTO myTable (column_a) VALUES (:value_a)" );
$sql->execute( array(
":value_a" => $value_a
));
} catch (PDOException $e) {
echo $e->getMessage();
}
在 catch 块中,我收到 sql 错误消息。 但我想知道,哪些参数和哪些值被发送到数据库。 有解决办法吗?
由于您是在 try-clause 之前准备变量,因此您也可以将它们转储到 catch 中。
try {
$sql = $db->prepare( "INSERT INTO myTable (column_a) VALUES (:value_a)" );
$sql->execute( array(
":value_a" => $value_a
));
} catch (PDOException $e) {
var_dump($e->getMessage(), $value_a);
}
此外,如果您使用 PHP 5.4 或更高版本(我真的希望更高),您 could/should 对数组使用短语法。它只是更好,更容易阅读。
$sql->execute([":value_a" => $value_a]);