За последние 24 часа нас посетили 18799 программистов и 1606 роботов. Сейчас ищут 1913 программистов ...

как правильно делать UPDATE поля в таблице и вывести инфу поля

Тема в разделе "PHP и базы данных", создана пользователем AlexsaiL, 6 мар 2017.

  1. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    подскажите как правильно сделать UPDATE полей в таблице и вернуть содержимое поля
    --- Добавлено ---
    Код (Text):
    1. case "edit":
    2.         $txt = $_POST[serv_list];
    3.         $sql = "UPDATE `service` SET `SERVICE` = '{$txt}' ";
    4.         $sql.= " WHERE ID=".$object_id;
    вылетает ошибка. в поле имеется таблица, в которой в теге заданы стили
    Код (Text):
    1. <p style="font-size: 18px; color: #464342; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: normal; padding: 10px 5px 10px 5px; text-align: center;">
    он выдает ошибку на одинарные кавычки, как мне сделать, чтобы при обработке запроса одинарные кавычки стиля (font-family: 'Helvetica Neue',)подставить другим знаком
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    экранирование или подготовленные запросы.
    используешь mysqli? тогда mysqli real escape string и prepare
     
  3. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    написал, не знаю правильно или нет, сейчас буду проверять
    Код (Text):
    1. case "edit":
    2.         $txt = $_POST[serv_list];
    3.         $link = mysqli_connect('localhost', 'ginzzu', 'ginzzu', 'db67121m');  //подключались ранее с  mysql_connect Данное расширение устарело  начиная с версии PHP 5.5.0, и будет удалено, Используем вместо него mysqli_connect. ниже команды работают только с этой командой подключения к бд.
    4.         if (!$link) {
    5.     printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    6.     exit();
    7. }
    8.         $stmt = mysqli_prepare($link, "UPDATE `service` SET `SERVICE` = ?{$txt}? "); //подготавливаем шаблон запроса  ?- маркер которому присваиваем переменную.
    9.         mysqli_stmt_bind_param($stmt, 's', $quote); //привязываем к маркеру значение переменной $quote
    10.         $quote = "'";
    11.         $stmt .= " WHERE `ID` = ".$object_id;
    12.         mysqli_stmt_execute($stmt); // выполняем подготовленный таким образом запрос.
    13.      
    14.         mysqli_stmt_close($stmt); //закрываем запрос.
    --- Добавлено ---
    и то, я заменил одинарные кавычки в запросе к бд, а мне надо было заменить именно в строке таблицы с данными(кодом html) <p style="font-size: 18px; color: #464342; font-family: 'Helvetica Neue', Helvetica... хз как сделать
    --- Добавлено ---
    БД выдвет такую ошибку: #1064 - 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 '<div class="text_page_wrapper"><h1 class="leter2" style="font-family: 'Helvetica' at line 1
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @AlexsaiL лучше перепиши на mysqli real escape string, будет больше опыта, опять попытаешься с prepare.
    Надо основы тебе подтягивать.
    У тебя SQL запрос разорван на части в разных переменных, в одной ты всё более менее правильно сделал, а потом пошла жесть.
    Ты пол запроса не передал в mysqli_prepare, потом результат mysqli_prepare склеиваешь с текстом, хотя по документации mysqli_prepare вернёт FALSE или объект.
     
  5. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    мне вот такой разорванный запрос скинули и что самое интересное он у человека работал, я его переделал, скинул не тот код
    --- Добавлено ---
    Код (Text):
    1. $stmt = mysqli_prepare($link, "UPDATE `service` SET `SERVICE` = ?{$txt}?  WHERE `ID` =" $object_id);
    --- Добавлено ---
    основы подтягиваю, теория трудно запоминается, на практике лучше все усваивается, параллельно теорию повторяю
     
  6. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Ден, то есть в место этого: mysqli_stmt_bind_param()
    использовать : mysqli_real_escape_string($link, $...)....?
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    это нормально, просто больше времени надо

    налегай на отладку, потому что без неё будет сложно, ты должен сам уметь искать любые ошибки

    перечитывай и вникай какие ты функции используешь и пиши по частям программу и перепроверяй
    --- Добавлено ---
    думаю тебе это будет проще осилить,

    PHP:
    1. $sql = "UPDATE `service` SET `SERVICE` = '".mysqli_real_escape_string($link, $txt)."'  WHERE `ID` = '".mysqli_real_escape_string($link, $object_id)."'";
     
  8. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    я вот просто не пойму в чем ошибка, или в запросе к бд и обработке или в самом html коде? потому что когда я в html коде в прописанных стилях удаляю одинарные кавычки (font-family: 'Helvetica Neue',), все отображается правильно, но мне надо их заменить на символы чтобы они при обработке не выбивали ошибку, а с помощью этого проблему решить можно mysqli_real_escape_string?
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    сделай echo $sql; получишь запрос для базы и изучи его на правильность синтаксиса, вот и начало отладки, надо проверять какие запросы ты генерируешь в базу
     
  10. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Ден, а вот методом $_POST[serv_list]; мне приходит в переменную $txt код html, находящийся в строке таблицы БД $txt = $_POST[serv_list];
    как можно заменить одинарные кавычки на юникод или спецкод html если юникод одинарной кавычки \2018? чтобы код html который приходит в запрос прогонялся и всем кавычкам присваивался юникод.
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    где одинарные кавычки для имени ключа?

    Если ты хочешь записать в базу данных html код, то тебе надо его экранировать,
    что из этого https://php.ru/forum/threads/kak-pr...blice-i-vyvesti-infu-polja.62474/#post-506256 не понятно?
     
  12. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    эхх... что то я запутался немного) Ден, ты уж извиняй что мучаю тебя), что то тема тяжелой кажется.
    приходит html код и присваивается в переменную $txt, мне надо в пришедшем html коде найти одинарные кавычки, заменить их на спецсимвол \2018 (спецсимвол одинарной кавычки) и с помощью UPDATE вернуть обратно в БД код html только уже со спецсимволами вместо кавычек.
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    зачем это ты хочешь сделать? какая цель?
     
  14. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    прихоть не моя, но мне надо решить такую задачу, заказчик хочет чтобы постоянно при апдейте одинарные кавычки в html коде менялись на символы во всех строках в таблице. потому что в каждой строке и каждом поле в ручную менять кавычки на символ очень долго. вот и решаю данную задачку.
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    отлично, в $txt меняем кавычки, например через str_replace, потом экранируем через mysqli real escape string, формируем SQL запрос, и выполняем его
     
  16. AlexsaiL

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

    С нами с:
    23 дек 2016
    Сообщения:
    327
    Симпатии:
    23
    Благодарю, пойду тестить
     
  17. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень