Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP PDOException:SQLSTATE[HY093]:Невалиден номер на параметър

Опитайте:

$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)
);

Извадка от документацията (http://php.net/manual/en/pdo. подготви.php ):

Трябва да включите уникален маркер за параметър за всяка стойност, която искате да предадете на израза, когато извикате PDOStatement::execute(). Не можете да използвате два пъти наименуван маркер за параметър със същото име в подготвен оператор. Не можете да свързвате множество стойности към един наименуван параметър в, например, клаузата IN() на 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. Условна разделена трансформация:Експортирайте данни от SQL Server в Oracle и MySQL бази данни

  2. Как да създадете таблица в MySQL Workbench с помощта на GUI

  3. Как да поръчам по име на месец в MySQL

  4. Достъпът е отказан за потребител 'root'@'localhost' с PHPMyAdmin

  5. INSERT с SELECT