Pemegang Tempat Parameter Dinamakan dengan PDO
PDO, Objek Data PHP, ialah perpustakaan popular untuk bekerja dengan pangkalan data dalam PHP. Apabila menggunakan ruang letak parameter bernama dalam pertanyaan SQL dengan PDO, kemasukan titik bertindih (:) sebelum nama parameter adalah amalan biasa. Ini menimbulkan persoalan sama ada titik bertindih diperlukan untuk kefungsian yang betul.
Kolon dalam Nama Parameter
Dalam konteks pernyataan yang disediakan PDO, adalah wajib untuk menggunakan titik bertindih apabila mentakrifkan pemegang tempat bernama dalam rentetan SQL. Ruang letak yang dinamakan dilambangkan dengan titik bertindih utama diikuti dengan nama parameter. Sebagai contoh, pertanyaan SQL mungkin kelihatan seperti:
INSERT INTO Table1 (column1, column2) VALUES (:column1, :column2)
Sebaliknya, jika ruang letak yang dinamakan tiada titik bertindih, pertanyaan SQL akan menjadi samar-samar, menjadikannya tidak jelas jika nama parameter merujuk kepada ruang letak atau nama lajur .
Kolon dalam laksana() dan bindParam()
Walau bagaimanapun, penggunaan titik bertindih tidak dikuatkuasakan dengan ketat apabila melaksanakan pernyataan yang disediakan menggunakan execute() atau apabila mengikat parameter dengan bindParam(). Kedua-dua coretan kod berikut berfungsi secara identik:
$insertRecord->execute(array( ':column1' => $column1, ':column2' => $column2 ));
$insertRecord->execute(array( 'column1' => $column1, 'column2' => $column2 ));
Menaakulan Di Sebalik Tanda Titik Pilihan
Mengapakah titik bertindih pilihan semasa mengikat parameter atau melaksanakan pernyataan? Dengan meneliti kod sumber PHP, kami mendapati bahawa penghurai PHP menjangkakan aksara pertama ruang letak yang dinamakan sebagai titik bertindih. Akibatnya, apabila parameter disediakan tanpa titik bertindih utama semasa pelaksanaan atau pengikatan, PHP secara automatik menambahkannya. Proses ini diperincikan dalam fail pdo_stmt.c.
Amalan Terbaik
Semasa meninggalkan titik bertindih apabila melaksanakan pernyataan atau parameter mengikat secara teknikalnya berfungsi, menggunakan titik bertindih masih disyorkan untuk beberapa sebab:
Atas ialah kandungan terperinci Adakah Tanda Titik Diperlukan untuk Pemegang Tempat Parameter Dinamakan dalam PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!