За последние 24 часа нас посетили 74003 программиста и 10184 робота. Сейчас ищут 2620 программистов ...

Не все поля mysql-таблицы заполняются при выполнении mysqli_query

Тема в разделе "PHP для новичков", создана пользователем fregat, 28 дек 2016.

  1. fregat

    fregat Новичок

    С нами с:
    28 дек 2016
    Сообщения:
    5
    Симпатии:
    0
    Что я делаю не так, у меня при отправке запроса из php:
    PHP:
    1. $sql = "INSERT INTO mytable (`id`, `comment`, `rating`) VALUES (NULL, '".$comment."', '".$rating."');";
    столбец comment всегда пустой, а рейтинг заполняется.
    Итоговый запрос выглядит так:
    PHP:
    1. INSERT INTO mytable (`id`, `comment`, `rating`) VALUES (NULL, 'комент', '16');
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      17,6 КБ
      Просмотров:
      6
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    А зачем писать в первых скобках `id`, если во вторых скобках - NULL?
    Код (Text):
    1. INSERT INTO mytable (`comment`, `rating`) VALUES ('комент', '16');
    --- Добавлено ---
    Это во первых. Во вторых, на страницу выводятся какие-то варнинги (ошибки)?
     
  3. fregat

    fregat Новичок

    С нами с:
    28 дек 2016
    Сообщения:
    5
    Симпатии:
    0
    Ошибок нет. Все успешно. Пробовал и без айди и NULL (то же самое). Это уже результат разных экспериментов чтобы решить данную проблему. Если же эту строку выполнить в phpmyadmin вручную, то все ок, оба параметра добавятся. А вот с php - добавляется только второй параметр, а первый где-то теряется ((
     
  4. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    Добавь в начало страницы эти три строки и попробуй выполнить скрипт.
    PHP:
    1. ini_set('error_reporting', E_ALL);
    2. ini_set('display_errors', 1);
    3. ini_set('display_startup_errors', 1);
     
  5. fregat

    fregat Новичок

    С нами с:
    28 дек 2016
    Сообщения:
    5
    Симпатии:
    0
    Добавил. Никаких ошибок не появилось. Вот эта строка возвращает мне successfully
    PHP:
    1. if(mysqli_query($link, $sql)){echo "Records added successfully.";}
     
  6. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    А дамп таблицы?
    --- Добавлено ---
    И попробуй вместо $comment в запрос вставить строку
     
  7. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    господа а начните вооот с такого дебага

    PHP:
    1. die ("comment:".$comment);
    2. $sql = "INSERT INTO mytable (`id`, `comment`, `rating`) VALUES (NULL, '".$comment."', '".$rating."');";
    а уже потом будем думать что и где НЕ добавляется
     
    fregat нравится это.
  8. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    Вот я к этому и подводил))
     
  9. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    а я пришел такой и все сливки собрал =)))
     
  10. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    Во во, весь каеф обломал :D
     
  11. fregat

    fregat Новичок

    С нами с:
    28 дек 2016
    Сообщения:
    5
    Симпатии:
    0
    Понял в чем глобальная причина поломки - кириллица. Латиница работает. Осталось понять в php это лечится, в настройках локалхоста или в таблице. При создании таблицы я выбирал utf8_general_ci
     
  12. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    В теге head пропиши <meta charset="utf8">, и смени кодировку файла на utf-8 без BOM
     
    fregat нравится это.
  13. fregat

    fregat Новичок

    С нами с:
    28 дек 2016
    Сообщения:
    5
    Симпатии:
    0
    Метатег был прописан. Помогло это
    после того, как я сменил кодировку обоих файлов (html и php), а также после смены кодировки в настройках апача, а то у меня поплыла кирилица, но уже на странице ))).
    Всем спасибо за помощь!
     
  14. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
  15. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.151
    Симпатии:
    108
    Адрес:
    Украина
    Всегда пожалуйста)
     
  16. Slavka

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

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    в коннекте мускеля тоже можно кодировку указывать .. ох уж эта кодировка.. перекодировка