За последние 24 часа нас посетили 18124 программиста и 1658 роботов. Сейчас ищут 1289 программистов ...

Подскажите где грабли

Тема в разделе "PHP и базы данных", создана пользователем Device, 16 янв 2009.

  1. Device

    Device Активный пользователь

    С нами с:
    16 янв 2009
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Саратов
    в общем вот код:

    Код (Text):
    1.  
    2. case "change_pass":
    3.    if($pass == $repass){
    4.      $pass = MD5("$pass");
    5.       if(mysql_query("UPDATE users SET pass='$pass' WHERE id='$id'")){ //вот в этом случае все супер срабатывает
    6.           echo"<center>Пароль успешно изменен!</center>";
    7.       }else{
    8.       echo"Ошибка: ".mysql_error()."";
    9.       }
    10.    }
    11.    break;
    12. case "change_group":
    13.    if(mysql_query("UPDATE users SET group='$group' WHERE id='$id'")){ //а вот тут выдает ошибку типа неправильный запрос
    14.      echo"<center>Группа успешно изменена!</center>";
    15.    }else{
    16.      echo"Ошибка: ".mysql_error()."";
    17.    }
    18.    break;

    текст ошибки: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group=2 WHERE id=4' at line 1
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    1) используй phpmyadmin и различай ошибки mysql и пхп.
    когда выложишь сюда именно то, что дает ошибку, обсудим дальше.
     
  3. Device

    Device Активный пользователь

    С нами с:
    16 янв 2009
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Саратов
    так я и выложил, ошибка запроса мускуля, и причем тут phpmyadmin? я просто непойму в чем разница между
    UPDATE users SET pass='$pass' WHERE id='$id' и UPDATE users SET group='$group' WHERE id='$id'

    различие одно, в БД поле pass типа tinytext а поле group tinyint
     
  4. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    ну по крайней мере мускул от пыха отличаешь.

    разница в том, что
    а) нефиг называть поля стандартными именами
    б) если уж так извращаешься, имена полей в запросах бери в кавычки.
     
  5. Device

    Device Активный пользователь

    С нами с:
    16 янв 2009
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Саратов
    а в чем извращение?

    один хрен ошибка((
     
  6. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    повторять до просветления:
    нефиг называть поля стандартными словами
     
  7. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Повторю то, что сказал armadillo, прочитайте внимательно:
    [sql]UPDATE users SET `group`='$group' WHERE id='$id' [/sql]
    Так же не забывайте про экранирование:
    PHP:
    1. <? $group = mysql_real_escape_string($group);
     
  8. Device

    Device Активный пользователь

    С нами с:
    16 янв 2009
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Саратов
    а вот, сработало, спасибо topas'у и armadillo, я просто не знал что есть различие между ` и ' :) сорри))