Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP PDOException:SQLSTATE [HY093]:Số tham số không hợp lệ

Hãy thử:

$sql = "INSERT INTO persist (user_id, hash, expire)
        VALUES (:user_id, :hash, :expire)
        ON DUPLICATE KEY UPDATE hash=:hash2";

$stm->execute(
    array(":user_id" => $user_id, 
          ":hash" => $hash, 
          ":expire" => $future,
          ":hash2" => $hash)
);

Trích từ tài liệu ( http://php.net/manual/en/pdo. chuẩn bị.php ):

Bạn phải bao gồm một điểm đánh dấu tham số duy nhất cho mỗi giá trị bạn muốn chuyển vào câu lệnh khi bạn gọi PDOStatement ::execute (). Bạn không thể sử dụng một điểm đánh dấu tham số đã đặt tên của cùng một tên hai lần trong một câu lệnh đã chuẩn bị. Bạn không thể liên kết nhiều giá trị với một tham số được đặt tên, chẳng hạn như mệnh đề IN () của câu lệnh SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn toàn diện về cách sử dụng MySQL

  2. PDO ::fetchAll so với PDO ::tìm nạp trong một vòng lặp

  3. Làm cách nào để sử dụng tính năng băm mật khẩu với PDO để làm cho mã của tôi an toàn hơn?

  4. MySQL / Lỗi tệp ghi (Mã lỗi 28)

  5. Bạn có thể truy cập giá trị tăng tự động trong MySQL trong một câu lệnh không?