我正在开发一个 php5.3 应用程序(我知道,我知道)。我还不能升级它。它使用安装在共享托管服务器上的包含目录中的 Pear db。
自从我使用 PHP 以来已经有一分钟了,但我认为我这样做是正确的,但它不起作用。
我得到了一个
Uncaught Error: Call to undefined function connect()
我的连接设置
require_once('DB.php');
$db = getDB();
$host = getHost();
$username = getUserName();
$password = getPassword();
// Data Source Name: This is the universal connection string
$dsn = "mysql://$username:$password@$host/$db";
$db = DB::connect($dsn);
在当地
DB.php
:
class DB
{
...
function &connect($dsn, $options = array()) {
...
我的第一个错误是调用非静态的静态函数。所以,我改变了...
$db = DB::connect($dsn);
to
$db_connect = new DB();
$dbSQL = $db_connect->connect($dsn);
但现在我收到错误:
Call to undefined function connect()
。我不明白这一点。我尝试删除 &
上的 function &connect
,但这没有任何作用。
我错过了什么?
在您的 PHP 代码中,您尝试使用
connect
方法作为 DB
类的静态方法,但它似乎是基于您提供的代码的实例方法。因此,您应该创建 DB
类的实例,然后在该实例上调用 connect
方法。具体方法如下:
require_once('DB.php');
// Assuming DB::connect is an instance method
$dbConnect = new DB();
$db = $dbConnect->connect($dsn);
// Now you can use $db for your database operations
此代码创建名为
DB
的 $dbConnect
类的实例,然后调用该实例上的 connect
方法来建立数据库连接。这应该可以解决您遇到的“调用未定义函数 connect()”错误。