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
Susan Sarandonasal
2024-12-01 03:43:17976semak imbas

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";

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!

Kenyataan:
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