对于我在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());
}
有谁看到问题可能是什么?构造函数完成后连接是否关闭?
答案 0 :(得分:7)
你应该在你的类中声明$ SQLConnection,你应该把它称为
$this->SQLConnection
而不仅仅是$ SQLConnection。
答案 1 :(得分:2)
$SQLConnection
方法中不存在 ExecuteQuery
。
您可以将其作为参数直接传递给ExecuteQuery
,也可以添加在构造函数中设置的sqlConnection
类属性,并在类方法中作为$this->sqlConnection
进行访问。
答案 2 :(得分:1)
尝试使用的变量$SQLConnection
ExecuteQuery()
是在另一个范围内创建的。 (SQLMethods
功能)。
当PHP脚本完成其工作或您自己关闭它时(如果在该脚本中建立连接),连接将关闭
您应该跳过php.net文档中所述的$SQLConnection
中的ExecuteQuery
变量
如果未指定链接标识符,则假定
mysql_connect()
打开的最后一个链接。