wil*_*ium 60 php mysql sql pdo mysql-error-1064
我查看了所有其他stackoverflow(和谷歌)帖子同样的问题,但似乎没有解决我的问题.
我正在使用pdo和php.
我的代码:
$vals = array(
':from' => $email,
':to' => $recipient,
':name' => $name,
':subject' => $subject,
':message' = >$message
);
print_r($vals);
try {
$pdo = new PDOConfig();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM messages WHERE `message` LIKE :message";
$q = $pdo->prepare($sql);
$q->execute(array(':message' => $vals[':message']));
$resp = $q->fetchAll();
foreach ($resp as $row) {
throw new Exception('Please do not post the same message twice!');
}
$sql = "INSERT INTO messages (from, to, name, subject, message) VALUES (:from, :to, :name, :subject, :message)";
$q = $pdo->prepare($sql);
$q->execute($vals);
}
catch(PDOException $e) {
echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
并且第一个print_r给出
Array ( [:from] => abc@gmail.com
[:to] => lala@me.com
[:name] => abc
[:subject] => abc
[:message] => abc )
Run Code Online (Sandbox Code Playgroud)
这是预期的(没有为null)
但它输出错误
QLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在'from,to,name,subject,message)附近使用正确的语法VALUES('abc @gmail.com','lala@me.com'在第1行
不知道如何解决这个问题......想法?
uKo*_*lka 33
我有这个确切的错误,但在我的情况下,我是LIMIT
条款的绑定值而没有指定类型.我只是放弃这个,以防有人因同样的原因得到这个错误.没有指定LIMIT :limit OFFSET :offset;
导致的类型LIMIT '10' OFFSET '1';
而不是LIMIT 10 OFFSET 1;
.有助于纠正以下内容:
$stmt->bindParam(':limit', intval($limit, 10), \PDO::PARAM_INT);
$stmt->bindParam(':offset', intval($offset, 10), \PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
456484 次 |
最近记录: |