社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

php中的mysql连接错误

Vicky • 6 年前 • 2054 次点击  

我已经为root设置了密码并授予了root的所有权限。为什么说它被拒绝了?

****mysql_query() [function.mysql-query]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\photo_gallery\includes\database.php  on line 56

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\photo_gallery\includes\database.php on line 56

The Query has problemAccess denied for user 'SYSTEM'@'localhost' (using password: NO)

代码如下:

<?php
include("DB_Info.php");

class MySQLDatabase
{
    public $connection;
    function _construct()
    {
        $this->open_connection();
    }
    public function open_connection()
    {   
        $this->connection = mysql_connect($DB_SERVER,$DB_USER,$DB_PASS);
        if(!$this->connection)
        {
            die("Database Connection Failed" . mysql_error());
        }
        else
        {
            $db_select = mysql_select_db($DB_NAME,$this->connection);
            if(!$db_select)
            {
                die("Database Selection Failed" . mysql_error());
            }
        }
    }
    function mysql_prep($value)
    {
        if (get_magic_quotes_gpc())
        {
             $value = stripslashes($value);
        }
        // Quote if not a number
        if (!is_numeric($value))
        {
            $value = "'" . mysql_real_escape_string($value) . "'";
        }
        return $value;

    }
    public function close_connection()
    {
        if(isset($this->connection))
        {
            mysql_close($this->connection);
            unset($this->connection);
        }
    }
    public function query($sql)
    {

        $result = mysql_query($sql);
        $this->confirm_query($result);
        return $found_user;
    }
    private function confirm_query($result)
    {
        if(!$result)
        {
            die("The Query has problem" . mysql_error());
        }
    }

}

$database = new MySQLDatabase();



?>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40340
文章 [ 4 ]  |  最新文章 6 年前
awgy
Reply   •   1 楼
awgy    16 年前

你真的应该把你的问题弄清楚。这只是你之前发布的问题的一个重新发布。

我相信你的代码有一个错别字,可能会导致你的问题。将连接参数定义为 $DB_SERVER 等等,但是你用 $DBSERVER 在你 mysql_connect() 打电话。您需要在connect调用的变量名中添加下划线。

Michal Čihař
Reply   •   2 楼
Michal Čihař    16 年前

您以系统用户身份连接,没有密码,这显然是不允许连接到mysql服务器的。

Yacoby
Reply   •   3 楼
Yacoby    16 年前

你没有定义任何 $DBSERVER , $DBUSER , $DBPASS 在当前范围内 variable scope .

如果这些变量在全局范围内,则必须将以下内容添加到使用它们的函数中:

global $DBSERVER,$DBUSER,$DBPASS;

如果您打算使用定义的变量,然后在 open_connection 函数必须先取消对它们的注释,然后更改传递给 mysql_connect 功能。

VolkerK
Reply   •   4 楼
VolkerK    16 年前

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