当面对返回 false 的 PDO 语句并使您对 var 毫无头绪时倾销,记住这两条黄金法则:
配置 PHP 和 PDO 以公开 MySQL 错误消息。将以下行添加到您的连接代码中:
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
或者,更好的是,包含此参数作为连接选项。这样,数据库错误将被转换为 PDO 异常,就像常规 PHP 错误一样。
替换带问号的 SQL 查询。然后,使用准备好的语句执行查询:
$sql = $dbh->prepare('INSERT INTO users(full_name, e_mail, username, password) VALUES (?, ?, ?, ?)'); $result = $sql->execute(array($_GET['fullname'], $_GET['email'], $_GET['username'], $password_hash));
准备好的语句可防止语法错误并确保正确处理输入数据。
PDO 异常将提供详细的错误消息来查明问题,将 MySQL 错误消息分解为类别:
调试技术可以帮助您识别前两个类别。然而,执行错误是最常见的罪魁祸首,PDO 异常将使理解它们变得轻而易举。
记住,相信错误消息,因为它们准确地指出了问题。如果它指出表不存在,请仔细检查您的拼写和数据库连接。如果它突出显示语法错误,请检查引用的错误之前的 SQL 语句。
如果代码成功执行但没有观察到结果,则表明可能意味着数据不符合选择标准。按照链接教程中的说明查明问题并解决它。
以上是为什么我的 PDO 语句默默失败,如何调试它?的详细内容。更多信息请关注PHP中文网其他相关文章!