Rumah >pembangunan bahagian belakang >tutorial php >Cara Menyelesaikan Pengecualian PDO: \'SQLSTATE[HY093]: Nombor Parameter Tidak Sah\'?
Pengecualian PDO: "SQLSTATE[HY093]: Nombor Parameter Tidak Sah" Diselesaikan
Semasa cuba melaksanakan kenyataan yang disediakan PDO, anda menghadapi ralat "SQLSTATE[HY093]: Nombor parameter tidak sah". Memeriksa kod yang disediakan, ternyata anda mempunyai berbilang parameter bernama dengan nama yang sama.
Isunya terletak pada penggunaan parameter bernama anda dalam pernyataan SQL dan panggilan pelaksanaan yang sepadan. Khususnya, anda telah menggunakan parameter ":hash" dua kali, yang tidak dibenarkan dalam pernyataan yang disediakan PDO.
Untuk menyelesaikan ralat ini, ubah suai kod anda seperti berikut:
$sql = "INSERT INTO persist (user_id, hash, expire) VALUES (:user_id, :hash, :expire) ON DUPLICATE KEY UPDATE hash=:hash2";
Dalam kenyataan yang dikemas kini ini, parameter bernama tambahan ":hash2" diperkenalkan untuk menggantikan kejadian kedua ":hash".
Selain itu, execute() panggilan harus diubah suai dengan sewajarnya:
$stm->execute( array(":user_id" => $user_id, ":hash" => $hash, ":expire" => $future, ":hash2" => $hash) );
Dengan menyediakan parameter bernama yang berbeza, anda mengelakkan ralat "SQLSTATE[HY093]" yang disebabkan oleh lebihan parameter. Pendekatan ini memastikan pengikatan parameter yang betul dan pelaksanaan yang berjaya bagi pernyataan yang disediakan.
Atas ialah kandungan terperinci Cara Menyelesaikan Pengecualian PDO: \'SQLSTATE[HY093]: Nombor Parameter Tidak Sah\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!