Tôi đã xem qua câu hỏi này khi tôi gặp phải sự cố tương tự. Câu trả lời đúng là CI không hỗ trợ các câu lệnh chuẩn bị. Tuy nhiên, không có nghĩa là mà bạn không thể sử dụng câu lệnh đã chuẩn bị!
Trong ví dụ sau Tôi đang sử dụng PDO là lớp kết nối của tôi nhưng đoạn mã sau sẽ làm việc:
$q = $this->db->conn_id->prepare('SELECT * FROM tbl_user WHERE uid=? and activation_key=?');
$q->execute(array($param1,$param2));
print_r($q->fetchAll());
Note các conn_id là đối tượng PDO dựa vào đó bạn có thể chạy các câu lệnh chuẩn bị của bạn.
Tuy nhiên, điều này sẽ không cho phép bạn nhận được chuỗi truy vấn mà hàm CI gốc cho phép. Bạn sẽ cần một cái gì đó như Get Last Executed Query in PHP PDO cho điều đó.
Hơn nữa, điều này không ngăn bạn sử dụng Trình tạo truy vấn để xây dựng các câu lệnh mà bạn có thể sử dụng trong PDO chuẩn bị.Ví dụ -
$db->where('uid = ?',null,false);
$db->where('activation_key = ?',null,false);
$q = $this->db->conn_id->prepare($db->get_compiled_select('tbl_user'));
Sẽ xây dựng các truy vấn và sẽ cho phép bạn xem các truy vấn cơ bản nếu bạn ra $db->get_compiled_select('tbl_user');
tôi cần bạn giúp đỡ. Xem tại đây: http://stackoverflow.com/questions/38607368/how-to-implement-in-to-prepare-statement?noredirect=1#comment64603092_38607368 –