缺少的第二个下划线
__construct()
在里面
class MySQLDatabase
{
public $connection;
function _construct()
{
解释所有症状(mysql
γ查询
发出警告,没有未定义的变量通知,无论您如何使参数对
function open_connection()
它不工作仅仅是因为它从未被调用,访问被拒绝
系统
@localhost,因为您的web服务器作为localsystem运行,因此
system
是默认mysql连接的默认用户名,…)
当您通过
$database = new MySQLDatabase();
方法_construct()未被调用,因此$this->open_connection()和
因此
没有为属性$connection赋值,该属性保持为空,并且
未建立到MySQL服务器的连接
.
现在你打电话来
$database->query('something');
并且没有数据库连接mysql_query()尝试建立默认连接,如中所述
http://docs.php.net/mysql_query
:
资源mysql_query(字符串$query[,资源$link_identifier])
[…]
如果未指定链接标识符,则假定是mysql_connect()打开的最后一个链接。
如果找不到这样的链接,它将尝试创建一个链接,就像调用mysql_connect()时没有参数一样。
如果未找到或建立连接,则会生成E U警告级别错误。
-
修复construct()中的错误
-
传递$this->到mysql_real_escape_string()、mysql_query()和mysql_error()的连接
-
确保
open_connection()
有它需要的所有参数,例如。
isset($DB_SERVER,$DB_USER,$DB_PASS,$DB_NAME) or die('missing parameters');
-
添加一些调试输出以查看是否已调用它,例如。
echo "Debug: this->connection = mysql_connect($DB_SERVER,$DB_USER,$DB_PASS);\n";
-
不要使用自己的mysql类,使用大量现有类中的一个,最好是更广泛接受的一个。