【问题标题】:PHP MYSQL Access denied for user Error [duplicate]用户错误的PHP MYSQL访问被拒绝[重复]
【发布时间】:2013-03-02 20:15:13
【问题描述】:

我正在尝试从 mySql 中的特定行 ID 获取 'Content' 值,我在 PHP 中回显了结果,但我得到“用户''@'localhost'的访问被拒绝(使用密码:否)” . 我尝试在 phpMyAdmin 中检查我的查询,我得到了我期望的确切结果。

这是我的代码:

$con = mysql_connect("localhost", "XXX", "XXX") or die (mysql_error());
$db = mysql_select_db("XXX", $con) or die (mysql_error());

function head($d) {
        $query = mysql_query("SELECT Content FROM list WHERE ID = '$d'") or die(mysql_error());
        $post = mysql_fetch_assoc($query);
        echo $post["Content"];
}


<h1> <?php head(1); ?> </h1>

非常感谢。

【问题讨论】:

  • 配置细节错误很简单

标签: php mysql


【解决方案1】:

您在拨打电话时引用的错误消息听起来像是数据库尚未连接。如果不存在连接,mysql_query() 将尝试使用默认值(通常为空)建立连接。

在进行任何查询之前,您应该检查您的程序流程并确保您实际上已连接到数据库。

【讨论】:

  • 为此+1...强烈同意..最初我把错误消息弄错了..谢谢..要删除我的答案
  • 伙计,还要写下哪个 mysql 被弃用了
  • 谢谢,但是,如何检查我是否已连接?
  • @Sam 我已经停止这样做了,请参阅meta.stackexchange.com/a/143382/138112 原因
  • @Noam 您可能遇到了架构问题。您确定在尝试进行查询之前您实际上是在拨打mysql_connect() 吗?
【解决方案2】:

将前两行移到函数中:

function head($d) {
$con = mysql_connect("localhost", "XXX", "XXX") or die (mysql_error());
$db = mysql_select_db("XXX", $con) or die (mysql_error());

        $query = mysql_query("SELECT Content FROM list WHERE ID = '$d'") or die(mysql_error());
        $post = mysql_fetch_assoc($query);
        echo $post["Content"];
}


<h1> <?php head(1); ?> </h1>

【讨论】:

    【解决方案3】:

    问题在于

    mysql_connect("localhost", "ncode_hana", "NOAM7778") 
    

    检查 sqn 用户和 pass 是否正确,并且该用户有权访问您选择的数据库...

    另外,切勿与任何人分享您的原始用户 ID 和密码。

    另外,正如 Pekka 告诉你的,你需要这样的东西

    <h1> <?php include('yourdatabaseconnectionfile.php'); ?> <?php head(1); ?> </h1>
    

    交替

     <?php
        $con = mysql_connect("localhost", "XXX", "XXX") or die (mysql_error());
        $db = mysql_select_db("XXX", $con) or die (mysql_error());
    
        <h1> <?php head(1); ?> </h1>
    
    
        function head($d) {
    
                $query = mysql_query("SELECT Content FROM list WHERE ID = '$d'") or die(mysql_error());
                $post = mysql_fetch_assoc($query);
                echo $post["Content"];
        }
    

    更多选择 在函数中添加连接字符串(虽然不推荐)

         function head($d) {
    mysql_connect("localhost", "ncode_hana", "NOAM7778"); 
                    $query = mysql_query("SELECT Content FROM list WHERE ID = '$d'") or die(mysql_error());
                    $post = mysql_fetch_assoc($query);
                    echo $post["Content"];
            }
    

    【讨论】:

    • 这不是问题(看错误信息)
    • 我实际上已经这样做了......这不是整个代码
    • @NoamLahmi 查看更新
    猜你喜欢
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 2013-09-30
    • 2018-04-23
    • 2011-11-24
    相关资源
    最近更新 更多