SQL查询正在工作,但在PHP中出现语法错误

SQL查询正在工作,但在PHP中出现语法错误,php,postgresql,Php,Postgresql,编辑: 问题并不是如评论中所建议的那样,在时间戳之后加逗号TIMESTAMP不是一个变量,它是一个Postgres关键字,用于在插入时间戳之前将时间和日期转换为时间戳数据类型。类似于演员阵容 我在Postgres中有以下SQL查询,它可以正常工作,没有错误: INSERT INTO sms (from_number, to_number, message, reply_time, sent_at) VALUES ('10000000000', '0000000000', 'ffffffff',

编辑:
问题并不是如评论中所建议的那样,在时间戳之后加逗号
TIMESTAMP
不是一个变量,它是一个Postgres关键字,用于在插入时间戳之前将时间和日期转换为时间戳数据类型。类似于演员阵容

我在Postgres中有以下SQL查询,它可以正常工作,没有错误:

INSERT INTO sms (from_number, to_number, message, reply_time, sent_at) VALUES ('10000000000', '0000000000', 'ffffffff', now(), TIMESTAMP '2015-05-27 18:45:31')
我在PHP中有一个函数,具有等效的查询:

   function insertWithSentTime($from, $to, $text, $sentTime)
   {
    $con = pg_connect("host=$this->host dbname=$this->db user=$this->user password=$this->pass") or die ("Could not connect to server\n");

    $query = "INSERT INTO sms (from_number, to_number, message, reply_time, sent_at) VALUES ($1, $2, $3, now(), TIMESTAMP $4)";

    pg_prepare($con, "prepare1", $query) or die ("Cannot prepare statement\n");

    pg_execute($con, "prepare1", array($from, $to, $text, $sentTime)) or die ("Cannot execute statement\n");

    pg_close($con);
   }
调用该函数时,我收到以下消息:


我做错了什么?

时间戳
$4
之间需要一个逗号时间戳不是变量,它是一个关键字,用于告诉postgresql在插入之前将时间戳作为字符串类型转换为时间戳数据类型it@JayBlanchard请阅读我编辑的部分并投票支持重新打开问题。您是否尝试引用变量?
$sentTime
中的值是什么样的?
PHP Warning:  pg_prepare(): Query failed:
ERROR:  syntax error at or near "$4" LINE 1: ...eply_time, sent_at) VALUES ($1, $2, $3, now(), TIMESTAMP $4)
                                                                    ^