php - SQL 语法错误 - 语法错误或访问冲突 : 1064

标签 php sql

我正在尝试运行此 SQL 查询:

$stmt = $pdo_conn->prepare("SELECT * from voipwallboard_ast_queue_log where time = :time, callid = :callid, queuename = :queuename, agent = :agent, event = :event, arg1 = :arg1, arg2 = :arg2, arg3 = :arg3, queue_id = :queue_id ");
        $stmt->execute(array(':time' => $result["time"], 
        ':callid' => $result["callid"], 
        ':queuename' => $result["queuename"], 
        ':agent' => $result["agent"], 
        ':event' => $result["event"], 
        ':arg1' => $result["arg1"], 
        ':arg2' => $result["arg2"], 
        ':arg3' => $result["arg3"], 
        ':queue_id' => $result["queue_id"] ));

但我收到错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' queuename = '0899*400', agent = 'NONE', event = 'ENTERQUEUE', arg1 = '', arg2 =' at line 1' in /home/integra/public_html/callstats/copy/copy.php:57 Stack trace: #0 /home/integra/public_html/callstats/copy/copy.php(57): PDOStatement->execute(Array) #1 {main} thrown in /home/user/public_html/callstats/copy/copy.php on line 57

我找不到问题是什么?

最佳答案

您不使用 , 来连接 WHERE 语句。您使用 ANDOR:

SELECT 
    * 
FROM
    voipwallboard_ast_queue_log 
WHERE
    time = :time
AND
    callid = :callid
AND
    queuename = :queuename
AND
    agent = :agent
AND
    event = :event
AND
    arg1 = :arg1
AND
    arg2 = :arg2
AND
    arg3 = :arg3
AND
    queue_id = :queue_id

关于php - SQL 语法错误 - 语法错误或访问冲突 : 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22756730/

相关文章:

php - Mysql插入数据如果不存在否则显示警告

php - 根据 php 中的分隔符拆分文件 - 哪个最好用?

php - 放一个绿点或红点来显示用户是否在线

SQL 查询以根据条件最多选择 N 条记录

mysql - 如何在 MySQL 数据库中将某些地址标记为已发送?

java - 使用具有特殊情况顺序的 SQLite 查询方法

php - 带有问号和符号的 mod_rewrite(使用 PHP)

php - 如何编写mysql查询来跟踪今天的记录

MySQL如何在没有过程/函数的情况下执行命令 block

SQL 原子增量和锁定策略 - 这安全吗?