我有一个功能
function connect
{
$c = MySQL_connect('db','ss','nn');
if(!$c)
die();
}
现在可以使用了 MySQL_close(连接()); 关闭连接,因为我必须在一个函数和许多数据库中使用许多连接。
答案 0 :(得分:0)
你可以这样做:
$conn1 = mysql_connect( ... );
$conn2 = mysql_connect( ... );
// any code here...
mysql_close($conn1);
mysql_close($conn2);
你使用PHP吗?在PHP中不推荐使用Mysql _...函数。请改用Mysqli或PDO。 Mysqli有一个API,它与旧的Mysql扩展非常相似。
<强>更新强>
评论:我会写'mysqli'而不是'mysql'。为简单起见,我的例子是程序式的。
mysqli_db_select("other_db");
。mysqli_query("SELECT * FROM db1.users UNION SELECT * FROM db2.users");
最佳选择是基于配置的连接处理。将配置文件中的连接设置映射(或 dsn -s,PDO和许多DBAL库支持)放置,并在创建时加载它。这是一个简化的例子:
function loadDbConfiguration($name) {
$configs = yaml_parse( ... );
if (array_key_exists($name, $configs)) {
return $configs[$name];
} else {
// throw any exception or do something other what you prefer
}
}
function getConnection($name) {
static $connections;
if (is_null($connections)) {
$connections = array();
}
if (array_key_exists($name, $connections)) {
return $connections[$name];
}
$config = loadDbConfiguration($name);
if (($conn=@mysqli_connect( [use $config here...] ))!==false) {
$connections[$name] = $conn;
return $conn;
} else {
// throw any exception or do something other what you prefer
}
}
function closeConnection($name) {
// do not forget to add error handlings
mysqli_close(getConnection($name));
}
$defaultConn = getConnection("default");
$site1Conn = getConnection("site1");
// any code here...
// later...
$myDefaultConn = getConnection("default"); // will same as $defaultConn
$site2Conn = getConnection("site2");
// at end:
closeConnection("default");
closeConnection("site1");
closeConnection("site2");
`