繁体   English   中英

MySQL表存在时不存在

[英]MySQL table doesn't exist when it does exist

我有这个查询:

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());

它给了我这个...

未知的数据库“扫描仪”

但是我可以在phpmyadmin中看到扫描仪数据库

即使当我输入phpmyadmin时,sql语句也会显示来自“ scanner”的表

它说找不到扫描仪

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

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

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

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

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

$ db_host ='本地主机:端口'; 指定本地主机的端口。 我遇到了同样的问题,并指定了端口即可解决问题。

您缺少在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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM