我在两个不同的服务器上运行完全相同的 PHP 脚本作为应用程序的 Web 服务。一个执行所有查询(一个运行 5.3.15),另一个(运行 5.3.10)不运行某些查询。当我告诉一些查询执行时,它会创建一个服务器错误。
运行5.3.15的机器是mac os x lion机器,另一台是和ubuntu 12.04的。
你们知道可能出了什么问题吗?下面是两个查询示例。第一个适用于 php 5.3.10,第二个不适用。
在职的:
$stmt = $this->db->prepare("SELECT DISTINCT b.id
FROM a
LEFT JOIN b
ON a.item_id = v.id
INNER JOIN c
ON a.id = c.item_id
LEFT JOIN d
ON c.status_id = d.id
WHERE d.property = 1");
服务器错误:
$stmt = $this->db->prepare("SELECT a.id AS id, d.ordering AS ordering,
d.name AS name2,
a.service_id AS service_id, b.name AS name,
c.name AS name1, a.due_date AS due_date,
d.status AS status
FROM a INNER JOIN b
ON a.title_id = b.id
LEFT JOIN c
ON b.tv_show_id = c.id
LEFT JOIN d
ON a.status_id = d.id
WHERE b.provider_id = ?
AND (b.film_id= ? OR b.name
LIKE CONCAT('%', ?, '%') OR c.name
LIKE CONCAT('%', ?, '%')) LIMIT 2000");
注:我很这些查询的各种批评持开放态度,但只说我很乱或需要阅读 sql 的答案对我没有多大帮助。此外,数据库名称实际上不仅仅是字母,出于安全目的我已更改它们。
问题很可能出在使用的函数之类的问题上,因为代码(在我通过更改所有名称快速杀死它之前)在 php 5.3.15 中完美运行。
如果错误没有意义,那么还有什么问题?我直接在 mysql 控制台中运行查询,它运行良好,但是当我 bound_params 并根据传入的变量执行它们时,第二个查询失败。任何帮助表示赞赏!
编辑:
错误消息是:捕获 SIGTERM,正在关闭 - 我会调查的。感谢所有提供帮助的评论者!