Ralat: Nombor Parameter Tidak Sah
Apabila bekerja dengan corak rekod aktif Yii dan DAO untuk mengakses pangkalan data yang berbeza, anda mungkin menghadapi ralat "SQLSTATE [HY093]: Nombor parameter tidak sah: parameter tidak ditentukan." Ralat samar ini boleh timbul kerana beberapa sebab.
-
Nama Parameter Tidak Padan: Pastikan nama parameter dalam pernyataan SQL (:nama pengguna, :kata laluan, dll.) sepadan dengan mengikat nilai dengan tepat (: alias, :kata laluan, dll.). Dalam kod yang disediakan, ralat berlaku kerana pernyataan SQL mempunyai ": alias," tetapi nilai bind ialah ": nama pengguna." Yii/PDO tidak dapat mencari ":username" dalam SQL dan melaporkan "satu parameter pendek."
-
Missing BindValues: Sahkan bahawa semua parameter yang digunakan dalam pernyataan SQL mempunyai bindValue() yang sepadan panggilan. Dalam Yii, ini biasanya diabaikan apabila menggunakan $criteria, di mana parameter ditetapkan dalam tatasusunan ($criteria->params = array(':bind1'=>'test', ':bind2'=>'test) ).
-
Nama Pemegang Tempat Tidak Sah: Pastikan ruang letak parameter dalam pernyataan SQL tidak mengandungi tidak sah aksara.
-
Konflik dengan Penomboran dan Isih: Apabila menggunakan pertanyaan kompleks dalam CDataProviders dengan gabungan, mungkin terdapat isu dengan parameter yang digugurkan, yang membawa kepada ralat ini.
-
Dayakan Pengelogan Parameter: Untuk memudahkan penyelesaian masalah, tambah 'enableParamLogging'=>true dalam tatasusunan konfigurasi db dalam fail konfigurasi anda. Ini merekodkan pertanyaan dan parameter SQL, memberikan cerapan berharga ke dalam nilai bind.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'SQLSTATE[HY093]: Nombor parameter tidak sah' dalam Rekod Aktif Yii?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!