sql >> Databáze >  >> RDS >> Mysql

PHP PDOException:SQLSTATE[HY093]:Neplatné číslo parametru

Zkuste:

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

a

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

Výňatek z dokumentace (http://php.net/manual/en/pdo. připravit.php ):

Musíte zahrnout jedinečnou značku parametru pro každou hodnotu, kterou chcete předat do příkazu, když voláte PDOStatement::execute(). V připraveném příkazu nemůžete dvakrát použít značku pojmenovaného parametru se stejným názvem. Nemůžete svázat více hodnot s jedním pojmenovaným parametrem, například v klauzuli IN() příkazu SQL.



  1. Pokud používáte indexovaná zobrazení a SLOUČENÍ, přečtěte si toto!

  2. Najděte nejčastější hodnotu ve sloupci SQL

  3. Vraťte 0, pokud je pole v MySQL prázdné

  4. Přehled parametrů připojení PostgreSQL 13 libpq sslpassword