对于我在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());
    }

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

有帮助吗?

解决方案

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

 $this->SQLConnection

而不仅仅是$ SQLConnection。

其他提示

ExecuteQuery 方法中不存在

$ SQLConnection

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

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

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

你应该跳过 ExecuteQuery 中的 $ SQLConnection 变量,如php.net文档中所述

  

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top