Tôi nhận được thông báo lỗi "SQLSTATE [HY093]: số tham số không hợp lệ" khi tôi cố gắng để chạy các chức năng dưới đây:PHP PDOException: "SQLSTATE [HY093]: số tham số không hợp lệ"
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;
}
tôi cảm thấy như nó đơn giản mà tôi không bắt được. Bất kỳ ý tưởng?
'Bạn không thể sử dụng dấu tham số được đặt tên có cùng tên hai lần trong câu lệnh đã chuẩn bị.' [http://php.net/manual/en/pdo.prepare.php](http://php.net/ manual/en/pdo.prepare.php) – bitWorking
Tôi hiểu rằng bài đăng đó cũng có câu trả lời cũng trả lời câu hỏi của tôi, nhưng câu hỏi của tôi chắc chắn không phải là bản sao có thể. – vijrox
Trong câu hỏi khác, 'fetchAll()' trả về không có gì vì truy vấn không thành công giống như của bạn. Các tác giả khác chỉ không nhận thấy nó. Đây là cơ bản cùng một vấn đề, do đó, nó là giá trị liên kết hai. – RandomSeed