2012-05-11 2 views
0

Я делаю игру PHP и MySQL RPG, а моя страница changeEquipment не работает. Я получаю эти ошибки:mysql_query() Доступ запрещен для пользователя

Предупреждение: mysql_query() [function.mysql-запрос]: Доступ запрещен для пользователя 'devinfa1' @ 'локальный' (используя пароль: NO) в /дома/devinfa1 /public_html/spellsword/changeEquipment.php на линии 21

Предупреждение: mysql_query() [function.mysql-запрос]: ссылка на сервер не может быть установлен в /дома/devinfa1/public_html/spellsword/changeEquipment .php on line 21

Предупреждение: mysql_query() [function.mysql-query]: Доступ запрещен для пользователя'devinfa1' @ 'не локальный' (с использованием пароля: НЕТ) в /home/devinfa1/public_html/spellsword/changeEquipment.php на линии 27

Предупреждение: mysql_query() [function.mysql-запрос]: Ссылка на сервер не может быть установлен в /home/devinfa1/public_html/spellsword/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_user имя пользователя и пароль dbpass, но он, по-видимому, пытается использовать имя пользователя devinfa1 без пароля.

Я понятия не имею, почему это так, потому что у меня есть тот же код соединения и инструкция обновления на моей странице changeHero, и он отлично работает. Есть идеи?

+1

есть некоторый код в commonFunctions .php, что делает любой материал db? – Dennis

+0

да. У commonFunctions.php есть функция hero_has_multiple_weapons() – DevinFalgoust

+0

см. мой ответ, я считаю, что именно там находится ваша проблема – Dennis

ответ

1

Проведите соединение с запросом в соответствии с руководством: Соединение с MySQL. Если идентификатор ссылки не указан, предполагается последняя ссылка, открытая mysql_connect(). Если такой ссылки не обнаружено, она попытается создать такую, как если бы mysql_connect() был вызван без аргументов. Если соединение не установлено или не установлено, генерируется ошибка уровня E_WARNING.

посмотреть, если это работает, это выглядит, как если переопределение последнего соединения (т.е. в вызове hero_has_multiple_weapons() подключение БДА открыто) или ваше последнее соединение действительно не подключить

+0

Я понял это. Я закрыл соединение в конце функции hero_has_multiple_weapons. Спасибо за помощь. – DevinFalgoust

+0

Без проблем, любя помощь и помощь при необходимости. Поздравляю – Dennis

Смежные вопросы