如何解决当我尝试运行PDO类不起作用时会返回空白页吗?
| 我创建了一个电子邮件类,它将用户添加到MysqL数据库中。 然后我创建了两个方法,第一个是private static,因此我可以在第二个方法中访问它,而第二个方法是public static,当运行此类时显示空白页? 空白页的原因可能是什么?class Email {
private static function DATABASE() {
$dbh = new PDO(\"MysqL:host=localhost;dbname=emails\",\'bjw123nasd4441\',\'hj12j2kJKj11s\');
return $dbh;
}
public static function addemail($email) {
$sqldata = array(\'email\' => $email);
$stat = Email::DATABASE();
$stat->prepare(\"INSERT INTO tasklist (email) VALUES (:email)\");
$stat->execute($sqldata);
}
}
Email::addemail(\'foo@bar.com\');
我通过PHP display Errors得到此错误。
调用未定义的方法PDO :: execute()
解决方法
您尝试直接致电
pdo->execute()
,那是行不通的。尝试这个:
$stat = self::DATABASE();
$query = $stat->prepare(\"INSERT INTO tasklist (email) VALUES (:email)\");
$query->execute($sqldata);
并且您还应该只使用一个pdo实例:
class Email {
private static $dbh = null;
private static function DATABASE() {
if(is_null(self::$dbh))
self::$dbh = new PDO(\"mysql:host=localhost;dbname=emails\",\'bjw123nasd4441\',\'hj12j2kJKj11s\');
return self::$dbh;
}
//...
}
, 我认为您在此行收到致命错误:
$stat = Task::DATABASE();
任务不存在?这应该是Email::DATABASE();
。
我假设您也没有显示错误,可以尝试在脚本顶部设置以下内容:
error_reporting(E_ALL);
ini_set(\'display_errors\',true);
这样可以解决白色屏幕出现明显错误。
边注
您在要添加的每封电子邮件上实例化一个新的数据库连接。
我认为电子邮件课程不应由您负责数据库连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。