我不知道我是否完全錯過了這裏的東西,所以我問,希望成爲一個更好的人。所以我現在已經請求原諒我的愚蠢,如果有的話。PHP/MySQL服務器問題
我有一個客戶端,由公司託管的客戶端,現在指責我爲客戶端構建的網站,一次又一次地「崩潰」(或至少使其運行速度非常慢)服務器。不,這不是一個龐大的網站,任何複雜的腳本。這是一個有評論功能的博客。
他們告訴我,這就是問題所在,因爲從日誌中似乎只有一個問題:
www.xxxxxx.se xxx.xxx.xx.xxx [14/Mar/2011:05:08:02 +0100] fcgi_php_error:PHP Warning: mysql_query() [function.mysql-query]: Unable to save result set in /home/t/xxxxx/www/include/php/newsfeed_full.php on line 66, PHP Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/t/xxxxx/www/include/php/newsfeed_full.php on line 68
66號線:
$sql = "INSERT INTO `newsfeed_comments` (post_id, reply_id, date, name, text) VALUES ('".mysql_real_escape_string($post_id)."', '".mysql_real_escape_string($_POST['reply_id'])."', '".date('YmdHis')."', '".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['text'])."')";
mysql_query($sql) or die(mysql_error());
$ SQL輸出:
INSERT INTO `newsfeed_comments` (post_id, reply_id, date, name, text) VALUES ('168', '111194', '20110322145339', 'Test 2', 'Test text 2')
Line 68:
$sql = "SELECT * FROM `newsfeed_comments` WHERE `post_id` = '".$post_id."' && `reply_id` IS NULL ORDER BY `date` DESC";
$result = mysql_query($sql);
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
//and so on...
$ SQL輸出:
SELECT * FROM `newsfeed_comments` WHERE `post_id` = '168' && `reply_id` IS NULL ORDER BY `date` DESC
問題是,我從來沒有見過這些錯誤我自己的測試。以任何方式,我從未能夠複製錯誤。所以它顯然是有效的。
我的問題是,有什麼可能是錯的?託管公司告訴我,我需要確保我的腳本可以處理他們的服務器可能發出的所有可能的錯誤。
相同的腳本在10-15其他託管服務上運行完美無缺,我從來沒有遇到過任何問題。
我是否缺少重要的東西?談到PHP時,我有很大的知識差距嗎?
'fcgi_php_error你的內存限制:PHP的警告:請求mysql_query()[function.mysql查詢]:無法保存結果集'這聽起來很奇怪,我會如果這是你的腳本的錯誤感到驚訝。有興趣看看會發生什麼 – 2011-03-22 13:17:21
您可以發佈$ sql的輸出以查看php如何解決您的變量?此外,如果你想存儲當前的日期時間,你可以使用now()mysql函數。 – 2011-03-22 13:21:52
谷歌搜索「無法保存結果集」似乎表明它是由損壞的表格或通過打擊內存限制造成的。 – Hammerite 2011-03-22 13:24:30