除非多个db_connect();否则SQL无法正常工作声明

时间:2012-05-21 20:42:56

标签: php

在过去,我使用一个简单的方法没有问题:

$ 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;
}

2 个答案:

答案 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不再指向数据库的东西。