Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP类数据库连接作用域问题_Php_Mysql_Class_Scope_Code Reuse - Fatal编程技术网

PHP类数据库连接作用域问题

PHP类数据库连接作用域问题,php,mysql,class,scope,code-reuse,Php,Mysql,Class,Scope,Code Reuse,对于我正在用PHP进行的一个新项目,我创建了一个SQLMethods类来连接数据库并执行查询。今晚是我实际测试它的第一个晚上,大约一周前我写了它,但忘了它,发生了一个意外错误:当它调用我的ExecuteQuery函数时,它不会使用我在构造函数中选择的数据库 建造商: public function SQLMethods() { $SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword)

对于我正在用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。

您应该在类中声明$SQLConnection,并将其称为

 $this->SQLConnection
不仅仅是$SQLConnection。

$SQLConnection在ExecuteQuery方法中不存在

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

$sqlConnection在ExecuteQuery方法中不存在

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

试图使用的变量$sqlConnection ExecuteQuery是在另一个作用域中创建的。SQLMethods函数

当PHP脚本完成其工作时,或者如果连接是在该脚本中建立的,则连接将关闭

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

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

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

当PHP脚本完成其工作时,或者如果连接是在该脚本中建立的,则连接将关闭

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

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