PHP类数据库连接范围问题
-
02-07-2019 - |
题
对于我在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()
打开的最后一个链接。
不隶属于 StackOverflow