作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的 PHP SQL 语句,它在 var 转储时返回 false
$sql = $dbh->prepare('INSERT INTO users(full_name, e_mail, username, password) VALUES (:fullname, :email, :username, :password)');
$result = $sql->execute(array(
':fullname' => $_GET['fullname'],
':email' => $_GET['email'],
':username' => $_GET['username'],
':password' => $password_hash));
最佳答案
有时您的 PDO 代码会产生类似 Call to a member function execute()
的错误。或类似的。或者甚至没有任何错误,但查询并不完全一样。这意味着您的查询无法执行。
每次查询失败时,MySQL 都会有一条错误消息 解释原因 .不幸的是,默认情况下,此类错误不会传输到 PHP,您所拥有的只是上面提到的沉默或神秘的错误消息。因此,配置 PHP 和 PDO 以报告 MySQL 错误非常重要。一旦您收到错误消息,解决问题将是轻而易举的事。
为了获得有关问题的详细信息,请在连接后立即将以下行放入您的代码中
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
(其中
$dbh
是您的 PDO 实例变量的名称)或 - 更好 - 将此参数添加为
connection option .之后,所有数据库错误都将转换为 PDO 异常,如果不理会这些异常,它将像常规 PHP 错误一样起作用。
error_reporting(E_ALL);
ini_set('display_errors',1);
error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
error_reporting
应设置为
E_ALL
每时每刻。
关于php - 为什么这个 PDO 语句会默默地失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593055/
我是一名优秀的程序员,十分优秀!