Rumah > Artikel > pangkalan data > Bagaimanakah CodeIgniter mencapai faedah keselamatan dan prestasi yang serupa dengan kenyataan yang disediakan?
Menggunakan Penyata Disediakan dalam CodeIgniter
Pernyataan yang disediakan menawarkan tahap keselamatan dan prestasi yang tidak tersedia dengan pertanyaan gabungan rentetan tradisional. Walaupun CodeIgniter tidak menyokong pernyataan yang disediakan secara langsung, ia menyokong pengikatan pertanyaan, yang mencapai kesan yang sama.
Dalam artikel ini, kami menunjukkan cara menggunakan pengikatan pertanyaan dalam CodeIgniter:
<code class="php">$sql = "SELECT * FROM tbl_user WHERE uid = ? and activation_key = ?"; $query = $this->db->query($sql, array($uid, $activation_key)); </code>
Kod ini mencapai tujuan yang sama seperti percubaan asal dengan ":id" dan ":key," tetapi sebaliknya menggunakan ruang letak yang tidak dinamakan. Pemegang tempat yang tidak dinamakan disokong oleh CodeIgniter, membolehkan anda memudahkan pertanyaan anda sambil mengekalkan tahap keselamatan data.
Adalah penting untuk ambil perhatian bahawa menggunakan "?" atau ":foo" tidak menunjukkan kefungsian kenyataan yang disediakan benar. Penyataan yang disediakan memerlukan fungsi prepare() dan execute() yang berasingan, yang tidak disokong oleh CodeIgniter.
Sebaliknya, CodeIgniter menggunakan pengikatan pertanyaan untuk menggantikan ruang letak dengan data yang disediakan. Ini memberikan faedah yang sama kepada pernyataan yang disediakan, termasuk perlindungan terhadap serangan suntikan SQL.
Untuk mendapatkan maklumat lanjut tentang pengikatan pertanyaan dan sebab CodeIgniter tidak menyokong kenyataan yang disediakan secara langsung, rujuk sumber yang disenaraikan dalam jawapan yang disediakan di atas.
Atas ialah kandungan terperinci Bagaimanakah CodeIgniter mencapai faedah keselamatan dan prestasi yang serupa dengan kenyataan yang disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!