我正在研究一些当前数据库连接打开并连接到一个数据库的大型软件,但不幸的是它在查询调用中没有使用链接标识符。
现在我必须打开到另一个数据库的连接;这工作正常,但所有对数据库函数的调用现在似乎都使用我打开的第二个连接(它们使用不同的参数)。
有没有办法避免这种情况并让查询回到使用第一个打开的连接,或者我还要为所有其他调用添加link identifier
吗?
我可以关闭第二个连接,然后它会重新使用它吗?
我知道我可以通过在查询中列出db来避免打开第二个连接,但我真的不希望两个数据库都使用相同的凭据。
答案 0 :(得分:0)
从php docs中找到这个花絮..
请注意,该手册略有误导性说明: -
“设置与之关联的服务器上的当前活动数据库 指定的链接标识符。每次后续调用mysql_query() 将在活动数据库上进行。“
第二种说法不正确或至多不清楚。
mysql_query()手动条目实际上正确地说明它将使用 最后一个链接默认由mysql_connect()打开。
因此,如果您有2个连接,则需要指定连接 当调用mysql_query或再次发出连接以确保第1次 数据库成为默认值,简单地使用mysql_select_db不会 使第一个数据库成为后续调用mysql_query的默认值。
当两个数据库不同时,它可能才显而易见 服务器
http://www.php.net/manual/en/function.mysql-select-db.php#108375
所以当我完成第二个数据库时,看起来我将不得不运行另一个连接到第一个数据库。