Php MySQL数据库不存在,查询自动分流到正确的数据库?

Php MySQL数据库不存在,查询自动分流到正确的数据库?,php,mysql,Php,Mysql,这很奇怪,但我有一个脚本,直到现在为止,它一直在调用只存在于另一台服务器上的数据库上的查询,现在它位于我的新服务器上,并具有不同的名称。但是,主机始终是localhost。用户连接到本地主机上不存在的数据库,并以某种方式连接到现有数据库 有没有人能向我解释一下,尽管一切都不应该正常,但它是如何正常工作的?目前只有一个数据库 感谢您的解释,我很困惑。首先连接MySQL服务器,然后选择数据库。如果您尝试选择的数据库不存在,则此用户的默认数据库将保持选中状态。如果用户只能访问一个数据库,则会选择此数据

这很奇怪,但我有一个脚本,直到现在为止,它一直在调用只存在于另一台服务器上的数据库上的查询,现在它位于我的新服务器上,并具有不同的名称。但是,主机始终是localhost。用户连接到本地主机上不存在的数据库,并以某种方式连接到现有数据库

有没有人能向我解释一下,尽管一切都不应该正常,但它是如何正常工作的?目前只有一个数据库


感谢您的解释,我很困惑。

首先连接MySQL服务器,然后选择数据库。如果您尝试选择的数据库不存在,则此用户的默认数据库将保持选中状态。如果用户只能访问一个数据库,则会选择此数据库。

当您说另一个服务器时?你是说另一个WAMP安装?或者完全不同的计算机/操作系统

主机始终是本地主机


这是我询问的唯一原因,因为可能您仍然安装了以前的mysql服务器,而新的mysql服务器位于不同的非默认端口上。

如果它始终是本地主机,则db位于该系统上。Localhost指的是ip地址127.0.0.1,它是一个不可路由的ip地址。由于它是一个不可路由的ip地址,除非您手动执行,否则它不会重定向到另一台计算机。例如,在Windows主机文件下,您可以使localhost成为127.0.0.1之外的另一个ip地址。这将是localhost重定向到另一台计算机的唯一方法。请记住,PHP代码在服务器上运行,而不是在客户机上运行,因此,只要PHP代码在与mysql db相同的物理或虚拟服务器上执行,作为mysql\u connect调用中的主机参数的localhost就会起作用。

,只是猜测一下,但如果数据库用户只能访问正确的数据库,则可能是它自动选择了该数据库


这里没有已知的事实,只是我认为可能涉及的内容,这就是为什么我最初将此作为评论而不是解决方案发布的原因。

您能否给出更多解释,也许是您认为行为奇怪的代码。现在这只是一个模糊的故事,我真的不明白发生了什么…@Jasper我使用的mysql\u select\u db的数据库名称基本上是错误的,而该网站仍在正常工作。这里只是一个猜测,但你使用的数据库用户是否只能访问正确的数据库?如果是这样的话,它可能从哪里得到合适的桌子…哦,那就可以了…谢谢!将其作为答案发布,这样您就可以获得您的销售代表。