在过去,我使用一个简单的方法没有问题:
$ link = db_connect();
在一个包含多个SQL命令的文件中,如下所示:
$sql = "UPDATE table SET...";
$sql_result = mysql_query($sql, $link)
or die("Couldn't execute query.");
$sql2 = "UPDATE table2 SET...";
$sql_result2 = mysql_query($sql2, $link)
or die("Couldn't execute query.");
现在,如果没有多个/单独的db_connects,我创建的任何新文件都将无效。例如:
$link = db_connect();
$link2 = db_connect();
$sql = "UPDATE table SET...";
$sql_result = mysql_query($sql, $link)
or die("Couldn't execute query.");
$sql2 = "UPDATE table2 SET...";
$sql_result2 = mysql_query($sql2, $link2)
or die("Couldn't execute query.");
具有多个mysql_queries的旧文件引用单个db_connect();仍然工作正常。什么可以改变?
感谢。
更新以包含db_connect();功能:
function db_connect($db="database", $host="localhost", $user="user", $p="password") {
$dbcnx = @mysql_connect($host, $user, $p);
if (!$dbcnx)
{
echo( "<p>Unable to connect to the database server at this time.</p>" );
exit();
}
$database = @mysql_select_db($db, $dbcnx);
if (!$db)
{
echo "<p>Unable to locate the database at this time.</p>";
exit();
}
return $dbcnx;
}
答案 0 :(得分:0)
如果您希望将$链接分开,请将true
添加为第四个mysql_connect()
参数:
$dbcnx = @mysql_connect($host, $user, $p, true);
此外,如果要使用不同的连接(不同的数据库,用户,密码),则需要第二次将参数显式传递给db_connect()
:
$link2 = db_connect('database2', 'whateverthehost', 'user2', 'andhispassword');
答案 1 :(得分:0)
你发布的内容看起来很好,除非你有 unset() ing $ link,为它赋值或者其他一些让$ link不再指向数据库的东西。