我有超过200,000行的庞大数据库,我面临的问题是每当我在我的loaclhost中运行时,它会显示准确的结果但是当我在服务器中时它会错过一些结果..
问题如下所示......
当我在本地主机中输入ip时,它会显示输出
但每当我在服务器中运行相同的ip时,它都没有显示结果
指向我服务器的链接是http://ip2country.1eko.com/index.php
查询代码如下所示..
<?php
if(isset($_REQUEST['submit']))
{
$ip = ip2long($_REQUEST['ip']);
$res = mysql_query("SELECT * from ip2country WHERE $ip BETWEEN begin_long_ip AND end_long_ip") or die(mysql_error());
$row = mysql_fetch_array($res);
echo "<h1>Country Name : ".$row['country_name']."</h1><br />";
echo "<h1>Country Code : ".$row['country_code']."</h1><br />";
$res1 = mysql_query("SELECT COUNT(*) AS Total FROM ip2country") or die(mysql_error());
$row1 = mysql_fetch_array($res1);
echo $row1['Total'];
}
&GT;
任何帮助将不胜感激......
答案 0 :(得分:0)
你没有得到我的评论,所以这里有解释。 在您的页面上不难看出令人讨厌的错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BETWEEN begin_long_ip AND end_long_ip' at line 1
这是因为您的查询错误:
SELECT * from ip2country WHERE $ip BETWEEN begin_long_ip AND end_long_ip
你应该改变它:
SELECT * from ip2country WHERE $ip > begin_long_ip AND $ip < end_long_ip
PS。请注意,不推荐使用mysql_ *函数,不应再使用它们了。请尝试使用Mysqli / PDO。