Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP PDOException:SQLSTATE[HY093]:Nieprawidłowy numer parametru

Wypróbuj:

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

i

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

Fragment dokumentacji (http://php.net/manual/en/pdo. przygotowanie.php ):

Musisz dołączyć unikalny znacznik parametru dla każdej wartości, którą chcesz przekazać do instrukcji, gdy wywołujesz PDOStatement::execute(). W przygotowanej instrukcji nie można użyć dwukrotnie nazwanego znacznika parametru o tej samej nazwie. Nie można powiązać wielu wartości z jednym nazwanym parametrem, na przykład w klauzuli IN() instrukcji 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. Czy mysql_real_escape_string() W PEŁNI chroni przed wstrzyknięciem SQL?

  2. Połączyć tabele w dwóch różnych bazach danych?

  3. Instalowanie sterowników MySQL JDBC w narzędziach Pentaho Data Integration i BA Server

  4. Jak przechowywać nazwę pliku w bazie danych wraz z innymi informacjami podczas przesyłania obrazu na serwer za pomocą PHP?

  5. Jak przechowywać tablice w MySQL?