【问题标题】:MySQL Error Access denied for user using password NOMySQL 错误访问拒绝用户使用密码 NO
【发布时间】:2012-06-03 20:43:45
【问题描述】:

我不断收到此错误:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'mcabinet'@'localhost' (using password: NO) in /home/mcabinet/public_html/games/db_edit/airportmadness4.php on line 3

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/mcabinet/public_html/games/db_edit/airportmadness4.php on line 3
No Database found.

这是我的整个 .php 页面:

<?php
include("../templates/base/template2/mysql_connect.php");




$gametitle = "Airport Madness TEST";
$gamedescription = "DESCRIPtion testing a description. LOL !";
$image1url = "http://website-gamesite.com/games/images/lhfdsjk.jpg";
$categorycode = "adv";
$gametitle2 = "airportmadnesstest";


mysql_query("INSERT INTO Games VALUES (null,'$gametitle','$gamedescription','$image1url','$categorycode','0','$gametitle2'") or die ("Error Inserting Values into the Games Table");

?>

谢谢!我刚开始使用 PHP 和 MySQL。

编辑:这是包含文件的内容:

<?php

$db_host = "localhost";
$db_username = "mcabinet_admin";
$db_password = "4jf8ido9A";
$db_name = "mcabinet_games";

@mysql_connect($db_host,$db_username,$db_password) or die ('MySQL Not found // Could Not Connect.');
@mysql_select_db("$db_name") or die ("No Database found.");


?>

使用您的提示进行编辑后,我仍然收到错误消息。

编辑:我做了更多的改变。这很奇怪,因为当我从数据库中获取内容时,内容显示正常,但仍然显示错误。而且当我运行单独的脚本,尝试添加行时,它甚至都无法连接。

【问题讨论】:

  • 您忽略了连接到数据库的实际代码。由于您的问题完全在于连接到数据库,因此最有可能是原因所在。
  • 删除 mysql_connect.php 文件中 MySql 调用前面的 @ 符号 - 这可能会掩盖错误。

标签: php mysql mysql-error-1045


【解决方案1】:

尝试将包含移动到第一个查询行上方! 像这样

<?php
  include("../templates/base/template2/mysql_connect.php");
  $query = mysql_query("SELECT * FROM Games WHERE id = '1' "); 

首先要发出 MySQL 请求。

【讨论】:

  • 谢谢,但这仍然不起作用。还有什么想法吗?我已将上面的代码编辑为最​​新尝试。
  • 如果您将mysqli_connect() 编辑为mysql_connect() 它应该可以工作!
【解决方案2】:

问题来了:

mysqli_connect('$db_host','$db_username','$db_password')
    or die ('MySQL Not found // Could Not Connect.');

这应该是:

mysql_connect($db_host, $db_username, $db_password)
    or die ('MySQL Not found // Could Not Connect.');

由于您已经对字符串进行了单引号,因此您最终会传递 '$db_host' (等)的字符串文字,而不是您想要的值。

此外,您似乎正在使用mysqli 连接,但使用mysql 运行查询。我猜想使用其中一个是值得的——它们是两个不同的库。

【讨论】:

    【解决方案3】:

    试试这个:

    <?php
    $db_host = "localhost";
    $db_username = "mcabinet_admin";
    $db_password = "4jf8ido9A";
    $db_name = "mcabinet_games";
    
    mysql_connect($db_host,$db_username,$db_password) or die ('MySQL Not found // Could Not Connect.');
    mysql_select_db("$db_name") or die ("No Database found.");
    
    
    $gametitle = "Airport Madness TEST";
    $gamedescription = "DESCRIPtion testing a description. LOL !";
    $image1url = "http://website-gamesite.com/games/images/lhfdsjk.jpg";
    $categorycode = "adv";
    $gametitle2 = "airportmadnesstest";
    
    
    mysql_query("INSERT INTO Games VALUES (null,'$gametitle','$gamedescription','$image1url','$categorycode','0','$gametitle2'") or die ("Error Inserting Values into the Games Table");
    
    ?>
    

    您的用户似乎在 phpmyadmin 中设置为不使用密码,对吗?

    【讨论】:

    • mysql_connect 调用中的单引号会导致问题 - 目前它的主机名是 $db_host 而不是 localhost(其他连接值依此类推)。删除引号以使其正常工作:)
    • 哈哈哎呀,他的代码中引用的引号:P 现在修复了它
    • 实际上,我的用户确实有密码。这就是为什么我很困惑。将内容添加到数据库本身是否有问题?这是我的数据库的样子。 ID 是自动递增的,每次用户访问我网站上的页面时,查看次数都是 ++。
    【解决方案4】:

    您应该运行查询之前建立连接:

    1) $link = mysqli_connect($host, $username, $password)
    2) mysqli_select_db($link, $db_name);
    3) $result = mysqli_query($link, $query);
    

    【讨论】:

      【解决方案5】:

      已解决!!!修复:

      简单的变化:

      mysql_query("INSERT INTO Games VALUES (null,'$gametitle','$gamedescription','$image1url','$categorycode','0','$gametitle2'") or die ("Error Inserting Values into the Games Table");
      

      到:

      mysql_query("INSERT INTO Games VALUES (null,'$gametitle','$gamedescription','$image1url','$categorycode','0','$gametitle2')") or die ("Error Inserting Values into the Games Table");
      

      【讨论】:

      • 我想我的帖子有所帮助,因为您已将我的更改编辑到您的问题中!
      • 他错过了一个):D
      【解决方案6】:

      一个有趣的场景是这样的

      <h1>Some heading</h1>
      <?php
          insert_data(a1,b1);
      ?>
      <h2>other html stuff</h2>
      <?php
          include('database_connnection.php'); <--- problem is this line
      
          function insert_data(a1,b1)
          {
               Query = "Insert INTO MYTABLE VALUES(a1,b1)";
          }
      ?>
      

      上面的代码将给出错误,因为 insert_data() 函数在调用 include(database...) 之前被调用,因为它在代码的更下方,因此你会得到错误。解决方法是将 include(database) 移动到函数内部或在调用 insert_data 查询之前

      <?php
      
          function insert_data(a1,b1)
          {
               include('database_connnection.php');
               Query = "Insert INTO MYTABLE VALUES(a1,b1)";
          }
      ?>
      

      【讨论】:

        猜你喜欢
        • 2020-09-03
        • 1970-01-01
        • 2016-01-28
        • 2022-12-29
        • 2019-12-29
        • 2020-03-12
        • 2017-07-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多