我总是希望PDO在发生错误时抛出exception,因为我总是使用PDO,如下所示: try { $dbh = new PDO("mysql:host=$kdbhost;dbname=$kdbname",$kdbuser,$kdbpw); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // some queries } catch (PDOException $e) { error_log('PDO Exception: '.$e->getMessage()); die('PDO says no.'); } 这将是很好,如果有一个configuration文件,我可以编辑,使PDO默认抛出exception – 这可能吗? 我想要这个的原因是我不必每次写这行: $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 更新 – 我自从创build了一个为我处理数据库访问的库(包括设置PDO来抛出exception)。
我的代码实际上工作,但它不是安全的,我不想使用MD5,因为它不是所有的安全。 我一直在查找密码哈希,但我不知道如何将它合并到我的代码。 login: require_once __DIR__.'/config.php'; session_start(); $dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_USERNAME, DB_USERNAME, DB_PASSWORD); $sql = "SELECT * FROM users WHERE username = :u AND password = :p"; $query = $dbh->prepare($sql); // prepare $params = array(":u" => $_POST['username'], ":p" => $_POST['password']); $query->execute($params); // execute $results = $query->fetchAll(); // then fetch //hash […]
我刚刚用Apache,MySQL和PHP安装了Debian Lenny,我收到了一个PDOException could not find driver 。 这是它所指的特定的代码行: $dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS) DB_HOST , DB_NAME , DB_USER和DB_PASS是我定义的常量。 它在生产服务器(以及我之前的Ubuntu服务器设置)上工作正常。 这是我的PHP安装? search互联网没有帮助,我得到的只是专家交stream和例子,但没有解决scheme。