当前位置: 首页 > 知识库问答 >
问题:

用户的mysql\u query()访问被拒绝

陈毅
2023-03-14

我正在制作一个PHP和MySQL RPG游戏,我的changeEquipment页面不工作。我发现以下错误:

警告:mysql_query()[function.mysql查询]:用户'devinfa1'@'localhost'(使用密码:NO)在 /home/devinfa1/public_html/spellsword/changeEquipment.php行21拒绝访问

警告:mysql_query()[function.mysql query]:无法在/home/devinfa1/public_html/spellswarm/changeEquipment中建立到服务器的链接。php在线21

警告:mysql_query()[function.mysql query]:在/home/devinfa1/public_html/spellswarm/changeEquipment中拒绝用户'devinfa1'@'localhost'(使用密码:否)的访问。php第27行

警告:mysql_query()[function.mysql query]:无法在/home/devinfa1/public_html/spellswarm/changeEquipment中建立到服务器的链接。php第27行

这是我的密码:

<?php
// Get commonFunctions.php
require_once('commonFunctions.php');

// Start the session and connect to the database
session_start();
$con = mysql_connect("localhost","devinfa1_user","dbpass");
if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("devinfa1_spellsword", $con);   

// If logged in
if(isset($_SESSION['account_name'])) {
    // If form is submitted
    if(isset($_POST['submit']) || isset($_POST['submit_x'])) {

        // If the hero has more than one weapon
        if(hero_has_multiple_weapons()) {
            // Set new weapon
            mysql_query("UPDATE Hero_Weapons SET active_weapon = TRUE WHERE HW_hero_id =
                (SELECT hero_id FROM Heroes WHERE hero_name = '$_SESSION[hero_name]')
                AND HW_item_id = (SELECT item_id FROM Items WHERE item_name = '$_POST[weapon]')");

            // Unset previous weapon
            if(isset($_SESSION['hero_name'])) {
                mysql_query("UPDATE Hero_Weapons SET active_weapon = FALSE WHERE HW_hero_id =
                    (SELECT hero_id FROM Heroes WHERE hero_name = '$_SESSION[hero_name]')
                    AND HW_item_id = (SELECT item_id FROM Items WHERE item_name = '$_SESSION[weapon_name]')");
            }
        }

// Close the database connection
mysql_close($con);
?>

因此,PHP应该使用devinfa1\u用户用户名和dbpass密码连接到我的数据库,但它显然试图使用没有密码的devinfa1用户名。

我不知道为什么会这样,因为我有完全相同的连接代码和更新语句在我的ChangeHero页面上,它工作得很好。有什么想法吗?

共有1个答案

公冶威
2023-03-14

根据手册:MySQL连接,将连接与查询一起传递。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。如果找不到这样的链接,它将尝试创建一个链接,就像调用mysql_connect()时没有参数一样。如果未找到或建立连接,将生成E_警告级别错误。

看看是否工作,它看起来好像是覆盖最后一个连接(即在调用hero_has_multiple_weapons()一个db连接打开)或您的最后一个连接没有真正连接

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : MySQL错误1045(28000):拒绝用户’bill’@’localhost’的访问(使用密码:是) (37个答案) 7个月前关闭。 因此,我创建了一个新用户 授予他所有特权: 到目前为止没有错误。然后,我尝试连接到数据库: 并得到一个错误: 我尝试了FLUSH PRIVILEGES,删除并重新创建用户-没有效果。我究竟做错了什么? 问题答案: 错误

  • 问题内容: $ ./mysqladmin -u root -p ‘ 编辑 ‘ 输入密码: mysqladmin:在“ localhost”处连接到服务器失败错误: “对用户“ root” @“ localhost”的访问被拒绝(使用密码:是) 我怎样才能解决这个问题? 问题答案: 打开并编辑或,具体取决于您的发行版。 在下添加 重启MySQL 您现在应该可以使用以下命令登录mysql 跑 设置新密

  • 问题内容: 我正在尝试从数据库中获取记录。但我正面临拒绝访问的问题。我尝试了在堆栈溢出中提到的其他解决方案,例如向用户授予特权。 访问数据库的代码: 错误的堆栈跟踪: 在这种情况下可能是什么问题。我尝试创建一个新的数据库,但是也没有用。 问题答案: 问题是授予表根用户的权限。’root’@’%’没有任何权限。.就像我以前用作连接地址一样,因此它给出了拒绝访问错误.. 是IP地址的通配符。所以mys

  • 我正试图将一个实时WordPress站点复制到我的本地服务器上。我通过MAMP从现场站点导入数据库,在尝试连接到phpMyAdmin时收到了一条错误消息: 我在这一点上被难住了。有人能帮忙吗?

  • 我安装了以下版本的MySQL: 我记得我在安装过程中没有为root用户设置密码。然而,如果我尝试使用命令简单地启动它,我会得到以下错误: 同样,作为root用户, 我尝试按照重置根密码:Unix和类Unix系统的说明进行操作;我在我的主目录中制作了文本文件,并从那里尝试使用选项启动MySQL服务器。但是,我再次收到权限错误: 我读到过类似的错误,无法连接到Mysql服务器;无法创建/写入pid文件

  • 在Ubuntu中使用MySQL我做了以下步骤: 我收到一个错误: 拒绝用户“root”@"localhost“的访问(使用密码:YES)