Php 尝试使用pg_query_params()时发生Apache SSL错误

Php 尝试使用pg_query_params()时发生Apache SSL错误,php,postgresql,ssl,Php,Postgresql,Ssl,当我试图使用PHP5.3.29中的pg_query_参数向我的远程PostgreSQL 9.3数据库发出请求时,Apache有时会出现一个模糊的错误: <br /> <b>Warning</b>: pg_query_params() [<a href='function.pg-query-params'>function.pg-query-params</a>]: Query failed: SSL error: block type

当我试图使用PHP5.3.29中的pg_query_参数向我的远程PostgreSQL 9.3数据库发出请求时,Apache有时会出现一个模糊的错误:

<br /> <b>Warning</b>: pg_query_params() [<a href='function.pg-query-params'>function.pg-query-params</a>]: Query failed: SSL error: block type is not 01 in <b>/index.php</b> on line <b>171</b><br />
这只是间歇性的,查询通常会成功,所以我知道这不是语法问题,也不是代码中的其他问题。但是,为了完整起见,以下是相关的PHP和SQL:

...
$query = <<<POWER_TEACHERS
WITH teachers AS (
    SELECT ca.started_by_id, sus.email, sus.zip_code
    FROM   common_activityinstance ca, socrative_users_socrativeuser sus
    WHERE  ca.end_time >= $1::date
    AND    ca.end_time <  $2::date + 1
    AND    ca.started_by_id = sus.id
    AND    sus.zip_code IS NOT NULL
    GROUP BY ca.started_by_id, sus.email, sus.zip_code
    HAVING COUNT(*) >= 3
    ORDER BY random()
    LIMIT 250
), activities AS (
    SELECT ca.id, t.email, t.zip_code
    FROM   common_activityinstance ca, teachers t
    WHERE  ca.end_time >= $1::date
    AND    ca.end_time <  $2::date + 1
    AND    ca.started_by_id = t.started_by_id
)
SELECT zip_code, email
FROM (
    SELECT DISTINCT ON (s.user_uuid) s.user_uuid, a.id, a.email, a.zip_code
    FROM   students_studentresponse s, activities a
    WHERE  s.activity_instance_id = a.id
    ORDER BY s.user_uuid
) sub
GROUP BY email, zip_code
HAVING COUNT(*) >= 3
ORDER BY zip_code;
POWER_TEACHERS;
$result = pg_query_params($con, $query, array($lastWeek, $today)); // error here
...

是什么导致了这种奇怪的行为?

如果这对其他人有帮助,我通过放弃PHP、切换到Node.js并使用优秀的模块解决了这个问题。我上面的查询完全没有变化,执行起来没有任何问题。

如果这对其他人有帮助,我通过放弃PHP,切换到Node.js,并使用优秀的模块解决了这个问题。我上面的查询完全没有变化,执行起来没有任何问题。

这是某种网络传输问题。客户端和服务器都是最近的吗?它们是否通过不可靠的链路连接?是否使用了某种网络代理?我不确定您所说的客户端和服务器是最新的,但我可以在上述查询失败前后通过pg_query_参数成功地进行其他查询。客户端/服务器之间的链接足够可靠,并且没有使用代理。我能看到的唯一区别是,我成功的查询直接引用了$\u POST全局变量,而这一个没有。这可能有关系吗?我在抓救命稻草,因为这非常奇怪。这是某种网络传输问题。客户端和服务器都是最近的吗?它们是否通过不可靠的链路连接?是否使用了某种网络代理?我不确定您所说的客户端和服务器是最新的,但我可以在上述查询失败前后通过pg_query_参数成功地进行其他查询。客户端/服务器之间的链接足够可靠,并且没有使用代理。我能看到的唯一区别是,我成功的查询直接引用了$\u POST全局变量,而这一个没有。这可能有关系吗?我在抓救命稻草,因为这太奇怪了。