Php 尝试使用pg_query_params()时发生Apache SSL错误
当我试图使用PHP5.3.29中的pg_query_参数向我的远程PostgreSQL 9.3数据库发出请求时,Apache有时会出现一个模糊的错误: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
<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全局变量,而这一个没有。这可能有关系吗?我在抓救命稻草,因为这太奇怪了。