try {
$dbh = new PDO("mysql:host=$host", $root, $root_password);
$dbh->exec("INSERT INTO test (col1, col2, col3) VALUES (test1, test1, test1)")
or die(print_r($dbh->errorInfo(), true));
} catch (PDOException $e) {
die("DB ERROR: ". $e->getMessage());
}
我曾经在屏幕上查询SQL查询:$sth->debugDumpParams();
但我收到内部500错误
如何打印查询?
答案 0 :(得分:0)
此代码段的几乎每一行都是错误的。启动时没有$sth
来获取debugDumpParams。更不用说你运行一个完全错误的查询的方式。
这是应该如何
$dbh = new PDO("mysql:host=$host", $root, $root_password);
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "INSERT INTO test (col1, col2, col3) VALUES (?,?,?)";
$sth = $dbh->prepare($sql);
$sth->execute(['test1', 'test1', 'test1'])
现在你可以使用任何方法来回显你的查询,无论是debugDumpParams还是简单地回显$ sql,但是它们都没有多大帮助,因为它将打印出与你脚本中已经完全相同的内容:
INSERT INTO test (col1, col2, col3) VALUES (?,?,?)
但是我想你不需要查询但是错误信息,上面的代码会为你提供 - 只需运行它。
请注意,您应该避免使用此代码中的die()
或try
语句。