2011-04-06 60 views
3

我们有一个大部分都是静态的页面,包含几个PHP包,每个PHP包都从我们的MSSQL数据库中提取数据。PHP页面中途停止加载,使用ODBC,数据源,MSSQL

有一个很奇怪的问题,页面会随机停止渲染。问题是零星的,并不总是可见的。有时页面加载正确,有时会在到达文件结尾之前停止。

有问题的页面,在这里你可以看到的问题是在 开发:http://author.www.purdue.edu/discoverypark/climate/ PROD:http://www.purdue.edu/discoverypark/climate/index.php

如果刷新页面上重复,你会希望能够看到这个问题。问题只存在于包含对我们数据库的调用的页面上,但大部分时间页面都会正常加载;只有时候它会停止输出页面。它已经破坏了正常的html以及php块之前和之内。

这个问题在生产环境中似乎更糟糕;两者之间的唯一区别就是与数据库的数据源连接。

在PHP,ODBC和MSSQL中是否有任何已知的问题?它显然与对数据库的调用有关,这些都是存储过程。这可能是数据源的问题吗?

任何输入,将不胜感激。

+0

你看到在错误日志中的任何错误?这听起来像是必须有一个代码或连接问题,导致页面处理无效。 – whoughton 2011-04-06 14:22:30

+1

php.ini中的'error_reporting'设置是你的朋友!将其设置为记录所有错误,打开日志记录(确保不显示生产中的错误)并检查日志...如果这是一个PHP问题,您将看到它出现在日志中,如果不知道您将会看到去别处看看。 – wimvds 2011-04-06 14:29:05

+0

我检查了我们的服务器管理员并启用了错误日志记录功能,但是我没有看到与此问题相关的任何错误。 – Will 2011-04-08 18:34:19

回答

0

确保没有在代码中的模具或出口任何地方

编辑 - 如果有,删除此,并查看错误

0

你检查正常的调试方法?代码的外观是什么 - 特别是,围绕ODBC调用的错误处理?你没有最高水平的回报或错误的死亡(),是吗?

当我看到页面处于非呈现状态时,它似乎是因为页面显然不完整,它是XHTML。

我看到它通常死在这里 -

<a href="/research/vpr/">OVPR</a> 
1

我不断地看到这一点 “查看源文件”,当它死:

< DIV CLASS = “包装” > < A HREF =“/研究/ VPR/“>过压保护解除</A > < IMG ALT =” > “SRC =”。

我猜想你的图片缓存或图片URL生成或图片处理可能在某个地方被破坏,并且因为缺少图片而中止。

The > INSIDE alt值也不是犹太教。这需要逃脱http://php.net/htmlentities

它可能“工作”,但它不会验证,并且一个不验证的页面只是简单的破碎。

DEV中的本地主机和PROD中的单独盒子之间的数据库连接差异可能会改变问题的时间/频率,但几乎肯定会出现红鲱鱼......

但如果一个DB调用来查找过压保护解除图像做一个模具()...

可以肯定的,不过,如果你没有10行错误的每个呼叫处理各地odbc_ *或mssq_ *在你的数据库代码中,那么你做错了,需要添加。

PS 从ODBC切换到mssql_ *或sybase_ *驱动程序或PDO :: *并且至少消除一个可能的竞争者(如果以上都没有解决)应该是微不足道的。不过,我再说一次,数据库肯定是99%的红色鲱鱼,而且你做了一件很明显的事情,敢说我很傻,一旦你找到真正的原因...