1

对于我在 PHP 中做的一个新项目,我创建了一个 SQLMethods 类来连接到数据库并执行查询。今晚是我真正测试它的第一个晚上(我大约一周前写了它并忘记了它)并且发生了意外错误:当它调用我的 ExecuteQuery() 函数时,它不会使用我的数据库在构造函数中选择。

构造函数:

    public function SQLMethods() {
        $SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword);

        if (!$SQLConnection) {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($SQLDB, $SQLConnection);
    }

有问题的功能:

    public function ExecuteQuery($Query) {
        mysql_query($Query, $SQLConnection) or die('Could not perform query: ' . mysql_error());
    }

有谁看到问题可能是什么?构造函数完成后连接是否关闭?

4

3 回答 3

7

你应该在你的类中声明 $SQLConnection ,你应该把它称为

 $this->SQLConnection

而不仅仅是 $SQLConnection。

于 2008-09-26T10:07:49.140 回答
2

$SQLConnection方法中不存在ExecuteQuery

您可以将其作为参数直接传递给ExecuteQuery,或者添加sqlConnection在构造函数中设置并$this->sqlConnection在类方法中访问的类属性。

于 2008-09-26T10:07:51.917 回答
1

尝试使用的变量$SQLConnection ExecuteQuery()是在另一个范围内创建的。(SQLMethods函数)。

当 PHP 脚本完成其工作或您自己关闭它(如果在该脚本中建立连接)时,连接将关闭

您应该按照 php.net 文档的说明跳过其中的$SQLConnection变量ExecuteQuery

如果未指定链接标识符,mysql_connect()则假定打开的最后一个链接。

于 2008-09-26T10:10:41.053 回答