无法从数据库中找到数据

时间:2014-03-07 10:39:21

标签: php mysql

我有超过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;

任何帮助将不胜感激......

1 个答案:

答案 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。