[英]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_connect
和mysql_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.