За последние 24 часа нас посетили 56818 программистов и 1789 роботов. Сейчас ищут 1415 программистов ...

Запись в бд

Тема в разделе "Прочие вопросы по PHP", создана пользователем GLD9, 16 апр 2015.

  1. GLD9

    GLD9 Новичок

    С нами с:
    16 апр 2015
    Сообщения:
    4
    Симпатии:
    0
    Не получается записать данные в базу, пишет "Ошибка!" В чем может быть проблема?
    Код (PHP):
    1. <?php
    2.  
    3. include("database.php");
    4.  
    5. if ($_POST){
    6. $i=0;
    7. $sql .= "  INSERT INTO Publications (idUser,idQuestion,NameWork,TypeWork,Volume,Pages,Publisher) VALUES  ";
    8.  foreach ($_POST['NameWork'] as  $key => $value) {
    9.  if (empty($value)) 
    10.                continue;
    11.                
    12. $idUser=mysql_real_escape_string($_SESSION['idUser']);
    13. $idQuestion=mysql_real_escape_string($_POST['idQuestion'][$key]);
    14. $NameWork=mysql_real_escape_string($_POST['NameWork'][$key]);
    15. $TypeWork=mysql_real_escape_string($_POST['TypeWork'][$key]);
    16. $Volume=mysql_real_escape_string($_POST['Volume'][$key]);
    17. $Pages=mysql_real_escape_string($_POST['Pages'][$key]);
    18. $Publisher=mysql_real_escape_string($_POST['Publisher'][$key]);
    19.  
    20. if ($i>0) $sql.=' , ';
    21. $i++;
    22. $sql .= " ('$idUser','$key','$NameWork','$TypeWork','$Volume','$Pages','$Publisher')";
    23. }                    
    24.                                     
    25. echo $sql;
    26.  
    27. if(!mysql_query($sql))
    28.  
    29. {echo '<center><p><b>Ошибка!</b></p></center>';}
    30.  
    31. else
    32. {echo '<center><p><b>Ваши данные добавлены! </b></p></center>';}
    33.  
    34. }
    35.                 
    36. ?>
    37. <br><a href=exit.php>Выйти</a>
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    вероятнее всего ошибка в этой строке
    Код (Text):
    1. $sql .= " ('$idUser','$key','$NameWork','$TypeWork','$Volume','$Pages','$Publisher')";
    строковые типы полей должны быть в ковычках, например,
    Код (Text):
    1. $sql .= " ('$idUser','$key', '\'$NameWork\'','$TypeWork','$Volume','\'$Pages\'','$Publisher')";
    а вообще как выглядет результат запроса
    Код (Text):
    1. echo $sql;
    ???
     
  3. GLD9

    GLD9 Новичок

    С нами с:
    16 апр 2015
    Сообщения:
    4
    Симпатии:
    0
    ответ такой
    INSERT INTO Publications (idUser,idQuestion,NameWork,TypeWork,Volume,Pages,Publisher) VALUES ('2','0','\'Первый\'','2','800000','\'15-96\'','\'Феникс\'')
    Ошибка!
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    что и следовало ожидать... то есть, только строковые типы должны быть в кавычках, а цифры просто вставлены... всё просто :)
     
  5. GLD9

    GLD9 Новичок

    С нами с:
    16 апр 2015
    Сообщения:
    4
    Симпатии:
    0
    Все равно ошибка...
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    покажи структуру таблицы, какие поля - какого типа
     
  7. GLD9

    GLD9 Новичок

    С нами с:
    16 апр 2015
    Сообщения:
    4
    Симпатии:
    0
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Код (Text):
    1. INSERT INTO `Publications` (`idUser`,`idQuestion`,`NameWork`,`TypeWork`,`Volume`,`Pages`,`Publisher`) VALUES (2,0,'\'Первый\'','2',800000,'\'15-96\'','\'Феникс\'')
    - это стока должна быть передана в mysql_query()

    а для начало бы проверил в phpMyAdmin вот так -
    Код (Text):
    1. INSERT INTO `Publications` (`idUser`,`idQuestion`,`NameWork`,`TypeWork`,`Volume`,`Pages`,`Publisher`) VALUES (2,0,'Первый','2',800000,'15-96','Феникс')