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 prepare.php ):

    PDOStatement ::execute()を呼び出すときに、ステートメントに渡す値ごとに一意のパラメーターマーカーを含める必要があります。プリペアドステートメントで同じ名前の名前付きパラメータマーカーを2回使用することはできません。たとえば、SQLステートメントのIN()句で、複数の値を単一の名前付きパラメーターにバインドすることはできません。



    1. リアルタイムアプリとは何ですか?

    2. SQLServerでネストされたcaseステートメントロジックを実行するための最良の方法

    3. 計算列がSQLServerで「永続化」されているかどうかを確認する方法

    4. ReadyCloud ReadyShipper X