私は周りを読んでいて、データベースとの接続を設定するときに追加する必要があると人々は言います
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
実際のPDOステートメントを使用してエミュレートされたプリペアドステートメントを無効にするようにPDOに指示します。
Codeigniterでこれを設定するにはどうすればよいですか?
codeigniter2.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;
}
}