За последние 24 часа нас посетили 19244 программиста и 1615 роботов. Сейчас ищут 1017 программистов ...

php+mysql не работает update

Тема в разделе "MySQL", создана пользователем Den4X, 11 мар 2010.

  1. Den4X

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

    С нами с:
    11 мар 2010
    Сообщения:
    7
    Симпатии:
    0
    Есть такой кусочек скрипта:

    Код (Text):
    1. $createobjq ="UPDATE `users` SET `ID` = '$uid', `Login` = '$username', `Pass` = '$npass', `Mail` = '$nmail', `GROUPP` = '$ngroup', `Other1` = '$no1', `Other2` = '$no2', `Other3` = '$no3', `Other4` = '$no4' WHERE `ID` = '$id_user'";
    2.  
    3. echo "<br><br> $createobjq";
    4.          
    5. $createobj = mysql_query($createobjq) or die('Не удалось сохранить профиль');
    при выполнении все поля следующие за Pass обнуляются.
    Если выполняю то что выдал echo в phpmyadmin, всё шикарно, а в скрипте такая лажа...
    Может есть разница в обработке строки эхом и мускул_квери?
    Или ошибка в чём-то другом?
     
  2. vuzy

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

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    а где точки между кавычками и переменными?
     
  3. Den4X

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

    С нами с:
    11 мар 2010
    Сообщения:
    7
    Симпатии:
    0
    хм, для echo и так интерпретировало, но щас проверю...
    заменил на:
    Код (Text):
    1. $createobjq = "UPDATE `users` SET ID='".$uid."', Login='".$username."', Pass='".$md5hash."', Mail='".$email."', GROUPP='".$group."', Other1='".$no1."', Other2='".$no2."', Other3='".$no3."', Other4='".$no4."' WHERE ID='".$id_user."'";
    no effect, тоже самое.
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    И что у тебя выводит echo?
     
  5. Den4X

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

    С нами с:
    11 мар 2010
    Сообщения:
    7
    Симпатии:
    0
    ну например так:
    [sql]UPDATE `users` SET `Login` = 'Den4X', `Pass` = 'd41d8cd98f00b204e9800998ecf8427e', `Mail` = [email='A@M.ru]'A@M.ru[/email]', `GROUPP` = '5', `Other1` = '123', `Other2` = '456', `Other3` = '', `Other4` = '' WHERE `ID` = '2'[/sql][/php]
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    гм.
    И этот запрос обнуляет поля после Pass? т.е. Mail, GROUPP, Other1?
     
  7. Den4X

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

    С нами с:
    11 мар 2010
    Сообщения:
    7
    Симпатии:
    0
    Именно!
    Если этот запрос исполняю через phpmyadmin работает как надо.
    А в скрипте обнуляет.
     
  8. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Так не бывает.

    Смотри логи mysql или пиши свои. Скорее всего у тебя проходит не один запрос.
     
  9. Den4X

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

    С нами с:
    11 мар 2010
    Сообщения:
    7
    Симпатии:
    0
    В смысле не один?
    Админ говорит что в логи пишуться только ошибки, а комманда выполняется без ошибок...
     
  10. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    В том смысле, что этот запрос нормальный и ничего обнулять не должен.
    Или выполняется не этот запрос или есть еще какой-то запрос который все и трет.

    У тебя есть какой-нибудь DBAL? или работаешь напрямую с mysql_query?

    В любом случае - тебе нужно сделать так, чтобы все запросы перед выполнением записывались в какой-нибудь файл.
    Тогда, запустив скрипт, ты увидишь в файле сколько запросов и когда они появились
     
  11. Den4X

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

    С нами с:
    11 мар 2010
    Сообщения:
    7
    Симпатии:
    0
    Ок, попробую, спасибо.
     
  12. Den4X

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

    С нами с:
    11 мар 2010
    Сообщения:
    7
    Симпатии:
    0
    Никаких лишних запросов.
    Использую напрямую mysql_query
    Заметил что если в
    PHP:
    1. $createobjq = "UPDATE `users` SET ID='".$uid."', Login='".$username."', Pass='".$md5hash."', Mail='".$email."', GROUPP='".$group."', Other1='".$no1."', Other2='".$no2."', Other3='".$no3."', Other4='".$no4."' WHERE ID='".$id_user."'";
    вместо переменной подставить заранее заданное число то оно в базе сохраняется.
    Хотя все переменные видны и через echo и через var_dump...
     
  13. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Показывай логи.