【问题标题】:Warning: mysql_query(): Access denied for user 'admin'@'localhost' (using password: NO) [closed]警告:mysql_query():用户'admin'@'localhost'的访问被拒绝(使用密码:否)[关闭]
【发布时间】:2016-01-10 22:14:20
【问题描述】:

似乎我的PHP 正在尝试使用我未提供的用户名登录MySQL 数据库。

我得到的错误是:

Warning: mysql_query(): Access denied for user 'radiocaf'@'localhost' (using password: NO) in /home/radiocaf/public_html/layout.php on line 16
Warning: mysql_query(): A link to the server could not be established in /home/radiocaf/public_html/layout.php on line 16

我确实提供了一个密码,并且没有在我的连接文件中使用“radiocaf”作为用户名,所以经过 3 个小时的凝视后,我仍然无法确定我哪里出错了。

这是我的代码:

psl-config.php:

define("HOST", "localhost");

define("USER", "carl");

define("PASSWORD", "xxxxxxxxx");

define("DATABASE", "wlist");

db_connect.php

include_once 'psl-config.php';   // As functions.php is not included

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);

最后是我收到错误的主页(我已经剪掉了 PHP 之间的 HTML:

ini_set('display_errors',1);
error_reporting(E_ALL);
//Include Connection PHP and connect
include_once('includes/db_connect.php');

//Check Connection
if ($mysqli->connect_error) {
    die('Connection failed: ' . $mysqli->connect_error);
};
if (!$query = mysql_query("SELECT * FROM (
    (SELECT * FROM users)
    UNION ALL
    (SELECT * FROM members)
) results
ORDER BY Name DESC")){
    die("Error: " . mysqli_error($mysqli));
}

if (!$result = $mysqli->query($query)){
printf("Error: %s\n", $mysqli->error);
}

<HTML>

    echo "<table border='0' cellpadding='0' cellspacing='0'>";
        $x=0;
        while($row = mysql_fetch_assoc($result)):
        if ($x<10){
            echo "<tr><td width='400' height='30' background='../images/green1.jpg'>".$row["Name"]."</td></tr>";
        }

        $x++;

        if ($x == 10){
            echo "<tr><td width='400' height'30' background='../images/green1.jpg'>More...</td></tr>";
            break;
        }
        endwhile;
        echo "</table>";

<HTML>

$mysqli->close();

周围的HTML只是页面的布局,本质上只是一个photoshop布局,切片导出到web。

我对@9​​87654328@ 还很陌生,所以我希望这个问题尽可能得到解释。


编辑:

非常感谢大家,我很抱歉这个问题对你们中的一些人来说似乎很糟糕,因为你们标记了它。不幸的是,我不会看到“错别字”,因为我真的不知道我正在尝试同时使用 mysqlmysqli 并且它们无法相互“交流”。我发现的另一个问题是 Dreamweaver 将代码从 layout.php 上传为 db_connect.php。这并没有解释(至少对我而言)是如何建立任何连接以显示 'radiocaf'@'localhost' 的访问被拒绝错误。

这是我更改的旧代码行(在 layout.php 中):

if (!$query = mysql_query("SELECT * FROM (

while($row = mysql_fetch_assoc($result)):

改为:

if (!$query = "SELECT * FROM (

while($row = mysqli_fetch_assoc($result)):

仅此而已,但我非常感激!再次感谢大家!

【问题讨论】:

  • 如果您使用的是 mysqli,请使用 mysqli。你穿插mysql函数调用,这是你的问题。 mysqli 和 mysql 是两个完全不同的、不相关的 API。
  • 它说错误在layout.php,你检查过那个文件吗?

标签: php html mysql mysqli


【解决方案1】:

您在 MySQLMySQLi 之间存在冲突。 MySQL和MySQLi是两种不同的方法

警告是:

Warning: mysql_query(): .....

但是您正在使用mysqli 连接数据库

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);.

php.net中的警告:

MySQL 扩展在 PHP 5.5.0 中被弃用,并在 PHP 7.0.0 中被移除。相反,应使用 MySQLiPDO_MySQL 扩展名。

【讨论】:

  • 感谢您的意见,我明白为什么这个问题由于印刷错误而被标记为离题,但我对此真的很陌生,并认为我做得很好。感谢您指出存在差异,我已经对代码进行了排序,现在可以使用了!
  • 是的!我已经编辑了原始问题以显示为使代码正常工作而更改的两行代码。谢谢! :)
【解决方案2】:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
//Include Connection PHP and connect
//include_once('includes/db_connect.php');
$con=mysqli_connect(HOST, USER, PASSWORD, DATABASE);

//Check Connection
if ($mysqli->connect_error) {
    die('Connection failed: ' . $mysqli->connect_error);
};
if (!$query = mysqli_query($con,"SELECT * FROM (
    (SELECT * FROM users)
    UNION ALL
    (SELECT * FROM members)
) results
ORDER BY Name DESC")){
    die("Error: " . mysqli_error($mysqli));
}

if (!$result = $mysqli->query($query)){
printf("Error: %s\n", $mysqli->error);
}
?>
<HTML>
<body>
  <?php
    echo "<table border='0' cellpadding='0' cellspacing='0'>";
        $x=0;
        while($row = mysqli_fetch_assoc($result)):
        if ($x<10){
            echo "<tr><td width='400' height='30' background='../images/green1.jpg'>".$row["Name"]."</td></tr>";
        }

        $x++;

        if ($x == 10){
            echo "<tr><td width='400' height'30' background='../images/green1.jpg'>More...</td></tr>";
            break;
        }
        endwhile;
        echo "</table>";
        $mysqli->close();
?>
</body>
<HTML>

【讨论】:

  • 欢迎来到 SO。如果您描述了您在回答中所做的更改,将会很有帮助。
  • 我只用过mysqli,没有用过mysql。
  • if (!$query = mysqli_query($con,"SELECT * FROM (
  • while($row = mysqli_fetch_assoc($result))
  • 你应该在你的问题中添加这个解释:)
猜你喜欢
  • 1970-01-01
  • 2011-11-29
  • 2013-07-08
  • 2013-03-10
  • 2013-07-26
  • 2014-11-19
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多