Профи кто работает с БД как вы избегаете таких ошибок?



  • Вообщем сталкиваюсь регулярно, надоело костылить, может есть решения.

    Имеем таблицу и когда получаем строку имеем

    1:Ivan:Latychev:192.0.1.168:text1:chtototam:id_zapisi
    но иногда бывает так что в каком то тексте тоже : или много : и тогда начинаются косяки с распарсиванием и получением значений.
    на кавычки тоже парсить смысла нет, потому что не понятно где они будут.

    вижу такое решение, но костыль же
    1:Ivan:Latychev:192.0.1.168:text1:=chtototam=:id_zapisi
    и потом парсим по =
    можно изгаляться, получать кол-во значений и потом получать предпоследнее... но блин, хочется норм сделать.



  • @kuzkuz у профи mysql и такой фигни не возникает.



  • @kuzkuz при добавлении базу текста с ":" через баз, текст екранируется, и потом действием парсить строку нормально парсится



  • @DrPrime said in Профи кто работает с БД как вы избегаете таких ошибок?:

    @kuzkuz при добавлении базу текста с ":" через баз, текст екранируется, и потом действием парсить строку нормально парсится

    Экранируется - понятно. Видел. Но это никак не помогает.

    Ранее вы строку пилили на : и брали 4й аргумент.
    А если вдруг!! @FastSpace , да и такое бывает, добавилось что то до этого аргумента с наличием : то парсинг на : будет некорректным.

    @FastSpace said in Профи кто работает с БД как вы избегаете таких ошибок?:

    @kuzkuz у профи mysql и такой фигни не возникает.

    Да, проверять каждое значение перед добавлением в базу. Заменять : на любой символ. Это не профи, это опыт. Я показал конкретную проблему. У меня поле комментария 3е например и туда случайно можно руками записать текст с :.



  • @kuzkuz всмысле не помогает? я json`ы огромные в базе держу и все гуд



  • @DrPrime said in Профи кто работает с БД как вы избегаете таких ошибок?:

    @kuzkuz всмысле не помогает? я json`ы огромные в базе держу и все гуд

    Я же описал пример.
    Ну экранируется и что дальше?

    Ранее вы строку пилили на : и брали 4й аргумент.
    А если добавилось что то до этого аргумента с наличием : то парсинг на : будет некорректным.
    

    Вы же пилили на :, это разделитель полей, верно?
    А добавилось что то базу с : и при парсинге получаете несоответствующее значение.
    Вообще мне надоело много чего по кругу объяснять, как будто борюсь с ветряными мельницами.
    Можете костылить до изнеможения.



  • @kuzkuz ну если вы пишите текст с : значит он вам в таком виде и нужен? Пишите так, аргумент 1: аргумент2: аргумент3: "много:двоеточий:в:этом:тексте" при обращении к 4 аргумент получите исходную строку



  • @kuzkuz said in Профи кто работает с БД как вы избегаете таких ошибок?:

    Вообще мне надоело много чего по кругу объяснять, как будто борюсь с ветряными мельницами.

    Донкихот, кек))
    Ты давай не ной и дурачка из себя не строй))
    Делай замену ":" на спецсимвол свой перед помещением значения в базу. Потом меняй обратно после парсинга. Пара кубиков - не такой уж и костыль, чтобы истерить по этому поводу.
    Тут всё-таки форум по БАСу, а json и SQL это большие темы со своими нюансами и заморочками. Не все так просто именно с темами, а не с БАСом или форумом.



  • @IvanM

    Делай замену ":" на спецсимвол свой перед помещением значения в базу.

    Это я и предложил. На какой спецсимвол ? = \ / | или ? любой из них может случайно руками оказаться вписанным в поле комментария.

    Я же описал пример, опять читать не хочешь )

    У меня поле комментария 3е например и туда случайно можно руками записать текст с :.

    И заголовок прочти у темы ;)
    Там озвучен вопрос в виде просьбы поделиться опытом, а не гон на БАС.



  • @kuzkuz said in Профи кто работает с БД как вы избегаете таких ошибок?:

    Это я и предложил. На какой спецсимвол ? = \ / | или ? любой из них может случайно руками оказаться вписанным в поле комментария.

    Можно заменить не на один, а на 2-3 последовательных символа. Вероятность, что встретится такое уже значительно меньше



  • @GameBot идея отличная. Это да, как я и предполагал одно из решений.
    но оно не очень, когда то я то коллега в базу вручную вписываем некий контент (комментарии). Что он что я можем случайно в комментарий поставить : просто позабыв и в итоге получим при распарсивании некорректные для нас результаты.
    в целом понятно что решений нет.
    Прошу тему закрыть , кто может помогите с этой БОЛЬШОЙ проблемой. Спасибо



  • @kuzkuz said in Профи кто работает с БД как вы избегаете таких ошибок?:

    На какой спецсимвол ?

    0x00
    По-моему им и пользуются многие.


Log in to reply
 

  • 5
  • 3
  • 4
  • 10
  • 6
  • 2
  • 1
  • 1