mysql-connect-如何声明一个php变量来保存“”的返回值;mysql_connect()";


mysql connect - How declare a php variable to hold the return value of "mysql_connect()"?

我需要将mysql_connect()的值保存在全局变量中,该全局变量可在我的项目中的每个php文件中访问例如CCD_ 1。

我只需要能够在程序开始时调用mysql_connect一次。

然后在每个php文件中——$db_ServerVal必须是有效的。这不是第一次了。每次。直到我呼叫mysql_close( $db_ServerVal)

我可以使用php中预定义的数组$GLOBALS[]来存储我的$db_ServerVal数据库连接吗?

另一个问题是,当浏览器窗口关闭时,我需要一个"关闭"事件,这样我就知道是时候给CCD_ 6打电话了。

我不能在index.php文件的末尾调用mysql_close(),因为这将关闭数据库过早,然后每次访问数据库时,我都必须再次使用mysql_connect()

虽然我可以在每次数据库调用前后调用mysql_connect()$db_ServerVal = mysql_connect()0,但我不是当然,如果这是做事的标准方式。

首先,您不需要存储此变量,因为如果省略db_connection参数,mysql_*函数的所有部分都将使用最后打开的连接。如果要同时打开多个数据库连接,则只需要存储此信息。

其次,mysql连接将在脚本结束时自动关闭。在大多数情况下没有必要关闭它。

第三,你不应该再使用mysql*了。使用mysqli_*或推荐的PDO类。

不要每次都关闭数据库。您甚至可以选择根本不关闭连接,因为它将在脚本结束时隐式关闭。

如果你想随时连接,你可以为此编写一个函数:

$_connection = false;
function getConnection()
{
  global $_connection;
  if (!$_connection)
    $_connection = mysql_connect( ... );
  return $_connection;
}
function closeConnection()
{
  global $_connection;
  if ($_connection)
    mysql_close($_connection);
  $_connection = false;
}

当然,将连接嵌入到实际的类中会更好,但这会让您开始解决问题。小步。:)

这来自我的db类,但我认为这应该会对您有所帮助。只需在第一次需要时打开,然后在页面末尾关闭即可。或者,像我一样,在db类的构造函数中有connect,在析构函数中有close。

//Constructor Code
$this->link_id = mysql_connect($this->db_host, $this->db_user, $this->db_pass);

//Destructor Code
@mysql_close($this->link_id);

以下是我使用的两种方法的示例。

    //forward php4 to constructor
    function db_class() {
        return $this->__construct();
    }
    //constructor
    function __construct() {
        register_shutdown_function(array(&$this, "__destruct"));
        $this->link_id = mysql_connect($this->db_host, $this->db_user, $this->db_pass);
        mysql_select_db($this->db_name, $this->link_id);
}
    //destructor
    function __destruct() {

        @mysql_close($this->link_id);
    }

我通常在每页的基础上进行数据库连接调用,而不是在每个查询的基础上。因此,我在每个需要连接的文件的顶部都包含了进行数据库连接的文件:

require('db_connect.php');

当我在页面上做了任何需要连接的事情后,请关闭它。然而,你应该做什么是基于你的需求,所以从这个意义上说,这取决于你。

您可以将连接对象存储在全局变量中,并通过$GLOBALS访问它。请注意,除非您使用持久连接(如果这样做,您应该知道自己在做什么),否则当PHP脚本结束时,数据库连接将自动关闭。