PHP类数据库连接作用域问题
对于我正在用PHP进行的一个新项目,我创建了一个SQLMethods类来连接数据库并执行查询。今晚是我实际测试它的第一个晚上,大约一周前我写了它,但忘了它,发生了一个意外错误:当它调用我的ExecuteQuery函数时,它不会使用我在构造函数中选择的数据库 建造商: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)
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打开的最后一个链接