预备语句是增强数据库安全性和性能的重要工具。但是,需要注意的是,CodeIgniter 本身并不支持准备好的语句。尽管如此,我们仍然可以采用查询绑定,这种类似的方法可以带来巨大的好处。
CodeIgniter 拥抱未命名查询绑定,其中问号 (?) 充当SQL 查询中的占位符。这些占位符会自动替换为传递给查询函数的数组中指定的值。
例如:
$sql = "SELECT * FROM tbl_user WHERE uid = ? AND activation_key = ?"; $this->db->query($sql, array($uid, $activation_key));
尽管 CodeIgniter 缺乏显式的支持命名绑定(例如:id 和 :key),用命名占位符替换问号并不表示使用准备好的语句。命名绑定只是在查询绑定中提供不同的语法替代方案。
理解使用 ? 至关重要。或 :foo 并不表示语句的准备。准备好的语句需要两个不同的函数调用:prepare() 和execute(),这在 CodeIgniter 中不受支持。
尽管没有准备好的语句,查询绑定还是提供了一些功能优点:
以上是CodeIgniter 支持准备好的语句吗?的详细内容。更多信息请关注PHP中文网其他相关文章!