私信  •  关注

VolkerK

VolkerK 最近创建的主题
VolkerK 最近回复了
16 年前
回复了 VolkerK 创建的主题 » php中的mysql连接错误

缺少的第二个下划线 __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类,使用大量现有类中的一个,最好是更广泛接受的一个。