MySQL表存在时不存在

时间:2012-05-07 14:05:02

标签: php mysql

我有这个问题:

mysql_select_db('scanner');
$query = "SELECT * FROM scanner.proxy ORDER BY RAND() LIMIT 20";
$result = mysql_query($query) or die(mysql_error());

它告诉我:'scanner.proxy'不存在..即使我确实拥有数据库的表。这很奇怪,因为我的其他查询工作......但这不是。

UPADTE:

我把它放的事件:

$user='root';
            $user='root'
        $password='<removed_password>';
        $dbname = 'scanner';
        $host = 'localhost';
        $link = mysql_connect($host, $user, $password) or die (mysql_error());

mysql_select_db($dbname, $link) or die (mysql_error());

它给了我这个......

  

未知数据库'scanner''

但我可以在phpmyadmin

中看到扫描仪数据库

即使我在phpmyadmin中输入sql语句 从“扫描仪”中显示表格

它说无法找到扫描仪

5 个答案:

答案 0 :(得分:2)

我们解决了在每个mysql_query语句之前添加重新连接方法连接到同一脚本中的多个远程 MySQL 数据库时发生的问题。重新连接方法调用了mysql_connectmysql_select_db函数。我们之前曾尝试在connect语句中将new link参数设置为true,但我们仍然遇到数据库错误和各种有趣的行为。

答案 1 :(得分:0)

确保您用于连接的用户具有足够的权限来查询该表。也许该表是由另一个用户创建的。

编辑:也许您需要从远程位置授予对扫描仪的访问权限。运行这个sholud有助于此。

GRANT ALL ON scanner.* TO your_user@'IP_ofServer_where_PHP_runs' IDENTIFIED BY 'PASSWORD';

答案 2 :(得分:0)

您已设置$ dbname ='aws_backlinks',但您正在尝试连接查询中的其他数据库。更改您的连接字符串以包含此数据库,或者只是连接到服务器并在查询时设置数据库。

答案 3 :(得分:0)

$ db_host ='localhost:Port'; 指定localhost的端口。 我遇到了同样的问题,指定端口解决了问题。

答案 4 :(得分:-1)

你错过了在mysql_select_db()调用中指定连接(mysql_connect()的结果)的参数:

$db_host = 'localhost';
$db_username = 'root';
$db_password = 'whatever';
$db_name = 'scanner';
$link = mysql_connect($db_host, $db_username, $db_password);
mysql_select_db($db_name, $link);