Dostaję błąd "SQLSTATE [HY093]: nieprawidłowy numer parametru" kiedy próbuję uruchomić poniższą funkcję:PHP PDOException: "SQLSTATE [HY093]: nieprawidłowy numer parametru"
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;
}
czuję jak to jest coś prostego, czego po prostu nie łapię. Jakieś pomysły?
'Nie można używać nazwanego markera parametru o tej samej nazwie dwa razy w przygotowanym oświadczeniu." [Http://php.net/manual/en/pdo.prepare.php](http://php.net/ manual/en/pdo.prepare.php) – bitWorking
Rozumiem, że ten post ma odpowiedź, która również odpowiada na moje pytanie, ale moje pytanie zdecydowanie nie jest możliwym duplikatem. – vijrox
W drugim pytaniu 'fetchAll()' nie zwraca nic, ponieważ zapytanie nie powiodło się tak samo jak twoje. Drugi autor po prostu tego nie zauważył. Jest to zasadniczo ten sam problem, więc warto połączyć te dwa. – RandomSeed