За последние 24 часа нас посетили 16373 программиста и 1614 роботов. Сейчас ищут 1194 программиста ...

Помогите найти ошибку в коротком SQL запросе

Тема в разделе "PHP и базы данных", создана пользователем ash81, 26 июн 2011.

  1. ash81

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

    С нами с:
    26 июн 2011
    Сообщения:
    5
    Симпатии:
    0
    Браузер выдает

    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 ''reports' SET server=\' в565 31\', done_job=\'12322\', authority=\'123123123\',' at line 1

    Насколько понимаю я где то ошибся с синтаксисом в запросе. Пробовал и не экранировать одинарные кавычки - результат тот же.

    PHP:
    1. <?php
    2.  
    3. //соединяемся с бд
    4. include "../scripts/sql_conf.php";
    5. //задаем переменные из данных формы отчета
    6. //и сделать проверку на существование $_post всех переменных присланых
    7. $date = $_POST['date'];
    8. $server_name = $_POST ['server_name'];//имя сервера
    9. $done_job = $_POST ['done_job'];//выполненная работа
    10. $authority = $_POST ['authority'];//основания выполнения
    11. $comments = $_POST ['comments'];//коментарии
    12. $section = $_POST ['section']; //раздел отчета  
    13. $field_id=$_POST ['id_report'];//id поля в которое надо вносить изменения
    14.  
    15. //формируем запрос на внесение данных по проведенным работам
    16.  
    17. $query = "UPDATE 'reports' SET server=\'$server_name\', done_job=\'$done_job\', authority=\'$authority\', comments=\'$comments\', section=\'$section\' WHERE `id_report` =\'$field_id\'";
    18.  
    19. if (mysql_query($query)){
    20.     echo('Данные успешно внесены');
    21.  
    22. header("Location: ../report/view.php");
    23.  
    24.     }
    25.     else {
    26.         exit(mysql_error());
    27.         }
    28.  
    29.  
    30. ?>
    31.  
     
  2. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    $query = "UPDATE `reports` SET server='$server_name', done_job='$done_job', authority='$authority', comments='$comments', section='$section' WHERE `id_report`='$field_id'";

    и ещё бы я посоветовал как минимум экранировать данные с помощью спец функции mysql_real_escape_string
     
  3. ash81

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

    С нами с:
    26 июн 2011
    Сообщения:
    5
    Симпатии:
    0
    Спасибо!!!

    Да это понятно что еще навесить проверки различные, но я не могу понять почему твой код работает - ты просто убрал экранирование одинарных кавычек? Я тоже так пробовал но у меня не работало :-(
     
  4. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    сумеешь найти разницу? ;)
     
  5. ash81

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

    С нами с:
    26 июн 2011
    Сообщения:
    5
    Симпатии:
    0
    я неудачнег

    я понял в чем разница :?

    спасибо за помощь