我正在开发一些大型软件,该软件当前打开了一个连接到一个数据库的数据库连接,但不幸的是,它在查询调用中没有使用链接标识符。
现在,我必须打开一个到另一个数据库的连接;这可以很好地工作,但是现在对数据库函数的所有调用似乎都使用我打开的第二个连接(它们使用不同的参数)。
有没有办法避免这种情况,并让查询返回到使用打开的第一个连接,或者我是否必须向所有其他调用添加link identifier?
我是否可以关闭第二个连接,然后它将返回使用它或不使用它?
我知道我可以通过在查询中列出db来避免打开第二个连接,但我不希望两个数据库使用相同的凭据。
发布于 2014-04-21 01:31:11
在php文档中找到了这个花边新闻..
请注意,这本手册有一点误导,它说:
“设置服务器上与指定链接标识符相关联的当前活动数据库。以后每次调用mysql_query()都将在活动数据库上进行。”
第二个陈述是不正确的,或者充其量是不清楚的。
mysql_query()手动输入实际上正确地声明了默认情况下它将使用mysql_connect()打开的最后一个链接。
因此,如果您有两个连接,则需要在调用mysql_query时指定连接,或者再次发出connect命令以确保第一个数据库成为默认数据库,简单地使用mysql_select_db不会使第一个数据库成为后续调用mysql_query的默认数据库。
这可能只在两个数据库位于不同的服务器上时才明显。
http://www.php.net/manual/en/function.mysql-select-db.php#108375
因此,当我完成第二个数据库时,看起来我将不得不运行另一个到第一个数据库的连接。
https://stackoverflow.com/questions/23184143
复制相似问题