【发布时间】:2012-04-19 10:00:47
【问题描述】:
先来点历史。我们将网站从一个托管服务提供商 (hostexcellence) 转移到另一个 (1and1),因为客户希望将自己的托管与我们的经销商托管分开。
除了一件事之外,该网站运行良好。
由于某种原因,在根文件夹中完成的特定查询无法正常工作,但在子文件夹中可以正常工作。另外要注意的是,如果我执行一个应该返回多个结果的查询,它可以正常工作,但是如果我执行一个应该返回单个行项目的查询,它会返回一个空集。
这是其中一个查询
'SELECT `specials`.*, DATE_FORMAT(startdate, "%d %b %Y") AS sdate, DATE_FORMAT(enddate, "%d %b %Y") AS edate FROM `specials` WHERE enddate > NOW() and active = 1'
但是,如果我在不同的表上运行类似的查询,它就可以正常工作
'SELECT *, DATE_FORMAT(startdate, "%d %b %Y") AS sdate, DATE_FORMAT(enddate, "%d %b %Y") AS edate FROM events WHERE enddate >= NOW() AND active = 1'
正如我上面提到的,这些不适用于网站的根文件夹,但可以在任何子文件夹中使用。
mysql_error() 不返回任何内容。它只是返回一个空结果。
任何想法,因为我在过去两天一直试图追踪错误。
如果这有什么不同的话,它正在一个 apache 服务器上运行,并且目前该目录中没有 htaccess 文件。
提前致谢
编辑
我尝试了下面提到的所有方法,并重试了与该页面分开的查询,它们在其他页面和 phpmyadmin 中运行良好。所以我有点不知所措。
【问题讨论】:
-
open_basedirPHP 配置选项? -
很难相信 SQL 代码是目录感知的。很可能是您没有启用 PHP 错误日志记录,或者您的错误报告级别太低。
-
我在页面中添加了以下内容(因为托管服务提供商在 php.ini 中允许的选项非常有限)来测试它,但它不会返回任何错误:
ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); error_reporting(E_ALL);