gpt4 book ai didi

mysql - 我可以使用函数作为 mysql_close(function) 的参数吗?

转载 作者:行者123 更新时间:2023-11-29 23:50:45 25 4
gpt4 key购买 nike

我有一个函数

function connect
{
$c = MySQL_connect('db','ss','nn');
if(!$c)
die();
}

现在我可以使用 MySQL_close(连接());关闭连接,因为我必须在一个函数和许多数据库中使用许多连接。

最佳答案

你可以这样做:

$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");

    `

关于mysql - 我可以使用函数作为 mysql_close(function) 的参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25670785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com