2014-03-06 47 views
0

我得到這個錯誤訪問我的網站。我爲三臺不同的服務器使用了相同的文件,包括我的本地服務器,並且運行良好。有人可以點亮一些燈嗎?mysql_num_rows()期望參數1是資源,php錯誤

$stringIp = $_SERVER['REMOTE_ADDR']; 
$intIp = ip2long($stringIp); 


$inDB = @mysql_query("SELECT 1 FROM av_whoIsOnline WHERE ip=".$intIp); 

if(!mysql_num_rows($inDB)) //CODE IN QUESTION <--------- 
{ 


if($_COOKIE['geoData']) 
{ 

list($city,$countryName,$countryAbbrev) =  explode('|',mysql_real_escape_string(strip_tags($_COOKIE['geoData']))); 
} 
else 
{ 


$xml = file_get_contents('http://api.hostip.info/?ip='.$stringIp); 

$city = get_tag('gml:name',$xml); 
$city = $city[1]; 

$countryName = get_tag('countryName',$xml); 
$countryName = $countryName[0]; 

$countryAbbrev = get_tag('countryAbbrev',$xml); 
$countryAbbrev = $countryAbbrev[0]; 


setcookie('geoData',$city.'|'.$countryName.'|'.$countryAbbrev, time()+60*60*24*30,'/'); 
} 

$countryName = str_replace('(Unknown Country?)','UNKNOWN',$countryName); 

if (!$countryName) 
{ 
$countryName='UNKNOWN'; 
$countryAbbrev='XX'; 
$city='(Unknown City?)'; 
} 
+0

mysql_connect('localhost','mysql_user','mysql_password')? – Andrew

+0

'SELECT 1 FROM'?爲什麼有人會提供這樣的名字? –

+0

並在哪一行報告錯誤? – 2014-03-06 07:43:27

回答

0

取出@mysql_query之前的@符號。這顯然可以抑制錯誤。如果您確實收到錯誤,$inDB將不是有效的資源,因此您將收到您收到的錯誤。你的問題很可能在之前的行中。

另請注意,mysql庫已棄用,因此支持mysqliPDO。考慮將代碼更改爲使用較新的庫之一,因爲它們更安全

0

它現在正在工作。感謝您的回覆。

這是我從網上抓回來的在線腳本。我使用相同的腳本更改了主機並且出現了此錯誤。在我上傳數據庫之後,我刪除了'av_whoIsOnline'中的任何條目。然後發生錯誤。插入回來的條目和錯誤消失。

我的數據庫連接位於另一個文件中。

相關問題