我一直在阅读,人们说在设置与数据库的连接时应该添加
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
告诉 PDO 使用真实的 PDO 语句禁用模拟的准备好的语句。
如何在 Codeigniter 中进行设置?
我正在使用 codeigniter 2.1.3
编辑1:
我现在如何连接:
$active_group = 'default';
$active_record = FALSE;
$db['default']['hostname'] = 'mysql:host=localhost';
$db['default']['username'] = 'XXXXXXX';
$db['default']['password'] = 'XXXXXXXXXX';
$db['default']['database'] = 'XXXXXXX';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
一个查询示例是:
function validate_login()
{
$bcrypt = new Bcrypt(17);
$sql = "SELECT * FROM users WHERE username = :user";
$loginQ = $this->db->conn_id->prepare($sql);
$loginQ->bindParam(':user', $this->input->post('username'));
$loginQ->execute();
$row = $loginQ->fetch();
$hash = $row['password'];
$password = $this->input->post('password');
$verified = $bcrypt->verify($password, $hash);
if($bcrypt->verify($password, $hash))
{
return $loginQ;
}
}