PHP PDOException: "SQLSTATE [HY093]: Ungültige Parameternummer"
Bin ich immer die Fehlermeldung "SQLSTATE[HY093]: Ungültige parameter-Nummer", wenn ich versuche, führen Sie die unter-Funktion:
function add_persist($db, $user_id) {
$hash = md5("per11".$user_id."sist11".time());
$future = time()+(60*60*24*14);
$sql = "INSERT INTO persist (user_id, hash, expire) VALUES (:user_id, :hash, :expire) ON DUPLICATE KEY UPDATE hash=:hash";
$stm = $db->prepare($sql);
$stm->execute(array(":user_id" => $user_id, ":hash" => $hash, ":expire" => $future));
return $hash;
}
Ich fühle mich wie es ist etwas einfach, dass ich bin einfach nicht fangen. Irgendwelche Ideen?
InformationsquelleAutor der Frage vijrox | 2013-08-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen:
und
Auszug aus der Dokumentation (http://php.net/manual/en/pdo.prepare.php):
InformationsquelleAutor der Antwort vee
Dies ist eine Einschränkung der Verwendung von PDO. PDO-einfach erkennt die Anzahl der Parameter in der Abfrage und die Ausführung und gibt eine Fehlermeldung aus, die auf jede Abweichung. Wenn Sie müssen, verwenden Sie den parameter Wiederholung in Ihren Abfragen, müssen Sie gehen über es mit einem workaround
Können Sie sich an das für ein aufwendiger workaround - https://stackoverflow.com/a/7604080/1957346
InformationsquelleAutor der Antwort Achrome
Ich weiß, das ist eine alte Frage, aber ich denke, es ist erwähnenswert, dass eine bessere Lösung wäre, zu vermeiden klobig workarounds in PHP durch die Nutzung von SQL entsprechend:
Diese Weise, Sie müssen nur zum senden des Wertes sobald.
InformationsquelleAutor der Antwort Duncan
InformationsquelleAutor der Antwort Razib