在 PHP 对象中连接到 MDB2

发布于 2024-11-14 13:22:58 字数 433 浏览 3 评论 0原文

$dsn="mysql://$db_username:$db_password@$db_hostname/$db_database";
global $mdb2;
$mdb2=MDB2::connect($dsn);
if (PEAR::isError($mdb2))
{
    die($mdb2->getMessage());
}

我这样做是为了连接到我的数据库,我将其放入一个名为 Connect.php 的单独 php 文件中,并在我的所有页面上都需要它。

但是,当我必须在函数内部查询时,我必须将 $mdb2 作为参数传递给函数吗?这是正确的方法吗?

此外,我正在编写一个类来查询我的数据库。我不知道该怎么做(我不想将它作为参数传递)

我是否必须每次都重新建立连接(即编写一个连接函数)

你不能使连接持久化和全局化吗?

$dsn="mysql://$db_username:$db_password@$db_hostname/$db_database";
global $mdb2;
$mdb2=MDB2::connect($dsn);
if (PEAR::isError($mdb2))
{
    die($mdb2->getMessage());
}

I do this to connect to my DB, I put this in a separate php file called Connect.php and require it on all my pages.

However, when I have to query inside a function, I will have to pass $mdb2 to the function as an argument? Is this the right way to do it.

Further, I am writing a class which will query my DB. And I have no idea what to do (I don't wanna pass it as an argument)

Do I have to re-establish the connect everytime (ie. write a function for connection)

Can't you make the connection persistent and global?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

多情癖 2024-11-21 13:22:58

您可以在所有页面上 require 文件 Connect.php,并且每个需要使用连接的函数都可以引用 global 变量 $mdb2.

例如:

# In file Connect.php

<?php
$dsn="mysql://$db_username:$db_password@$db_hostname/$db_database";
$mdb2=MDB2::connect($dsn);
if (PEAR::isError($mdb2))
{
    die($mdb2->getMessage());
}


#In any other file

<?php
require_once "Connect.php";
getUser($id) {
    global $mdb2;
    $mdb2->query("SELECT ....");
}

其他解决方案是使用 Singleton Class 访问数据库,以便有一个函数始终返回对 $mdb2 变量的引用。

当然,讨论数据库连接是全局还是单例?值得一读。

You can require your file Connect.php on all of your pages, and every function that needs to use the connection can refer to the global variable $mdb2.

For example:

# In file Connect.php

<?php
$dsn="mysql://$db_username:$db_password@$db_hostname/$db_database";
$mdb2=MDB2::connect($dsn);
if (PEAR::isError($mdb2))
{
    die($mdb2->getMessage());
}


#In any other file

<?php
require_once "Connect.php";
getUser($id) {
    global $mdb2;
    $mdb2->query("SELECT ....");
}

Other solution is using a Singleton Class to access the database, so that there is a function that always returns the reference to your $mdb2 variable.

Surely, the discussion Global or Singleton for database connection? is something worth reading.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文