Rumah > pembangunan bahagian belakang > tutorial php > Cara Menyelesaikan Pengecualian PDO: \'SQLSTATE[HY093]: Nombor Parameter Tidak Sah\'?

Cara Menyelesaikan Pengecualian PDO: \'SQLSTATE[HY093]: Nombor Parameter Tidak Sah\'?

Susan Sarandon
Lepaskan: 2024-12-01 03:43:17
asal
1057 orang telah melayarinya

How to Solve the PDO Exception:

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";
Salin selepas log masuk

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)
);
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan