有没有办法用mysql_query设置默认数据库句柄?所以我知道mysql_query可以在没有sql句柄的情况下调用,但它基本上会使用你从 last mysql_connect获得的任何句柄。如果我想自己设置默认句柄怎么办?
我只是想清楚地说明我们编写的所有代码都没有传入处理程序。我们无法改变它们。我们在幕后有一些代码可以在不同的数据库集群之间更改数据库。我们希望能够在不重复调用mysql_connect的情况下在数据库之间切换。
答案 0 :(得分:3)
超级贫民窟版本。
$defaultHandle;
function SetDefaultHandle($handle){
global $defaultHandle;
$defaultHandle = $handle;
}
function q($query){
global $defaultHandle;
return mysql_query($query,$defaultHandle);
}
答案 1 :(得分:0)
如果要提供连接,可以在函数调用中将其作为第二个参数传递。有关详细信息,请参阅documentation of mysql_query
。
答案 2 :(得分:0)
试试这个:
$dbc = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_query($query, $dbc);
来自manual:
resource mysql_query ( string $query [, resource
的$link_identifier ]
强>)
link_identifier
- MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像没有参数调用mysql_connect()一样。如果未找到或建立连接,则会生成E_WARNING级别错误。
答案 3 :(得分:0)
而不是指向你手册,而你现在已根据你的问题阅读了这本手册......
您无法使用mysql
扩展程序执行此操作。
魔术“选择最后一个句柄打开”行为是由扩展本身定义的 。你无能为力改变这种行为。
您要求的行为将需要自定义代码,几乎可以肯定用适当的包装器替换每个函数的每个调用,该包装器为您的负载平衡情况选择正确的数据库句柄。