php 5.3.10和5.3.15的不同之处?

时间:2013-08-08 00:04:29

标签: php sql osx-lion version ubuntu-12.04

我在两个不同的服务器上运行完全相同的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控制台中运行查询,它运行得很好,但是当我绑定并根据传入的变量执行它们时,第二个查询失败。任何帮助表示赞赏!!

编辑:

错误消息是: 抓住了SIGTERM,关闭了 - 我会调查一下。感谢所有帮助过的评论者!

1 个答案:

答案 0 :(得分:0)

我意识到了我的问题,如果有人遇到同样的问题,我将分享:

我的Ubuntu php没有安装mysqldb,只是普通的mysql(默认)。因此,像“fetch_assoc()”和“get_result()”这样的函数不起作用。对于解决方法,我提到了以下帖子:

Call to undefined method mysqli_stmt::get_result