• Почему в бд не вводится символ "\"?

    @maksam07
    попробуй:
    $folder = addslashes("\\assets\\img\\product\\");

    Но лучше что-то вроде:
    $stmt = $mysql->prepare("INSERT INTO `catalog`(`Name_Product`, `Operator`, `Internet`, `Minuts`, `Sms`, `Price_tarif`, `Price_sim`, `image`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
    $stmt->bind_param("ssssssss", $Name_Product, $Operator, $Internet, $Minuts, $Sms, $Price_tarif, $Price_sim, $photoname);
    $stmt->execute();
    Ответ написан
    3 комментария
  • Есть ли готовые решения, для отмены действий на сайте, как бы SQL-undo?

    @alexalexes
    Проектируйте структуру базы данных так, чтобы сохранялась полная история действий над каждым классом данных, словно сохраняете лог для спец. служб.
    Api пользователя не должно использовать DELETE, только INSERT, и UPDATE только для выставления даты удаления записи, выставления метки последней актуальной записи истории. Операцию DELETE имеет право использовать только служебный метод для зачистки истории, когда устаревшие записи становятся неактуальными ни для одного актора системы.
    Ответ написан
    Комментировать
  • Как правильно использовать REPLACE при LEFT JOIN в MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для MySQL 8.0 и выше:
    WITH RECURSIVE `subs` (`name`, `value`, `order`) AS (
      SELECT CONCAT('{{> ', `p`.`name`, '}}'), `p`.`value`, ROW_NUMBER() OVER ()
        FROM `templates` AS `t`
        JOIN `parts` AS `p`
          ON `t`.`value` LIKE CONCAT('%{{> ', `p`.`name`, '}}%')
        WHERE `t`.`id` = 1
    ),
    `result` (`value`, `order`) AS (
      SELECT `value`, 0
        FROM `templates`
        WHERE `id` = 1
      UNION SELECT REPLACE(`r`.`value`, `s`.`name`, `s`.`value`), `s`.`order`
        FROM `result` AS `r`
        JOIN `subs` AS `s`
          ON `s`.`order` = `r`.`order` + 1
    )
    SELECT `value`
      FROM `result`
      ORDER BY `order` DESC
      LIMIT 1

    Для старых версий даже пробовать не буду, мне столько не выпить.
    Ответ написан
    3 комментария
  • Как удалить записи с базы используя limit?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    PostgreSQL?
    DELETE FROM order_clients
      WHERE ctid IN (
        SELECT DISTINCT o.ctid 
          FROM order_clients AS o
          JOIN order_clients AS t
            ON t.client_id = o.client_id AND t.order_id = o.order_id
              AND t.linked_at < o.linked_at
          LIMIT 1000
      );
    Ответ написан
    3 комментария
  • Как и чем лучше делать бэкап баз 1c?

    @Dementor
    программист, архитектор, аналитик
    кто чем и как делает бекап баз 1с (клиент-серверная архитектура)?

    Делал только стандартными средствами СУБД.

    Когда полностью админил одну базу на PostgreSQL, то у меня был в кроне скрипт, который регулярно выгружал бэкапы утилитой pg_dump. Админы моих баз на MsSQL обычно делали ночью полные бекапы и в течении дня по расписанию сохраняли разностные.
    Ответ написан
    Комментировать
  • Как добавить отношения "многие-ко-многим" между таблицами из разных баз данных?

    Если вы разделяете проект на микросервисы, но связываете при этом их данные, то вы просто делаете распределённый монолит. А когда вы ещё и базу разрываете на два куска, при этом пытаясь сохранить между ними традиционные связи, как внутри одной базы данных, то вы:
    1. Не решаете абсолютно ни одной из задач микросервисов, т к. сервисы остаются жёстко связанными. Всё можно было бы решить просто при помощи "Clean architecture", DDD и т.д.
    2. Вы добавляете себе невероятное количество головной боли, связанной с самой микросервисной архитектурой, но и плюс все прелести из п.1.
    3. И тогда нафига козе баян?

    - Микросервисы должны иметь полностью независимые базы данных
    - Все взаимодействия должны осуществляться исключительно по API (это мой ответ на ваш вопрос). Как только вы связываете схемы данных, вы теряете весь смысл микросервисов.
    - Вы должны обязательно реализовать распределенные транзакции. Вы должны сами писать код для таких транзакций. А вспомните, как приятно и просто делать транзакции в монолите с одной базой данных.
    - Взаимодействие между микросервисами должно осуществляться на базе строжайших контрактов, которые можно менять только после обсуждения со всеми людьми, разрабатывающими данные микросервисы. Вам неплохо было бы выдумать или позаимствовать какой-то фреймворк, где четко будут описаны общие и частные принципы общения микросервисов.
    - Вы должны обеспечить мониторинг всего и вся, оповещение об отказах и деградации микросервисов
    - Вы должны обеспечить распределенное логирование, чтобы уметь отслеживать даже, например, простые запросы между логами из нескольких независимых систем.
    - И т.д. и т.п.

    Оно вам надо?
    Ответ написан
    Комментировать
  • Как добавить отношения "многие-ко-многим" между таблицами из разных баз данных?

    @rPman
    Если это сделано специально то не надо так делать.

    Одновременная работа с двумя базами данных лишает пользователя встроенного механизма транзакций и заставляет самому следить за согласованностью данных.

    Если прямо очень надо, то для начала нужно понять, какая сторона будет 'главной', кто будет выдавать идентификаторы и следить за их согласованностью. Если главного выбрать не получается, то идентификаторы можно создавать двумя способами:
    - генерация GUID, который специально разработан быть статистически уникальным, на чьей бы стороне он не был создан (128бит)
    - добавление в идентификатор объекта идентификатора ноды, алгоритмы бывают разные, самый простой, определить максимальное количество нод и выделить в идентификаторе несколько бит для их номера (например максимальное количество нод 256, это 8бит в идентификаторе, пусть будут младшие)
    Ответ написан
    Комментировать
  • Как извлечь топ 15 очков из таблицы чтобы игроки не дублировались?

    @rPman
    так?
    SELECT user_id, name, MAX(points) as max_points
    FROM `games`
    GROUP BY user_id, name
    ORDER BY max_points DESC
    LIMIT 15;
    Ответ написан
    1 комментарий
  • Как сохранить mysql базу?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    На будущее, формат, в котором сохраняется БД, называется "дамп".
    А дальше всё просто, как сохранить дамп в mysql workbench
    Ответ написан
    Комментировать
  • Объясните CASE WHEN THEN?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    $this->database()->query('UPDATE ' . $this->database()->getTable('ad') . ' SET view = 0 WHERE ad_id = 34');
    $this->database()->query('UPDATE ' . $this->database()->getTable('ad') . ' SET view = 1 WHERE ad_id = 35');
    $this->database()->query('UPDATE ' . $this->database()->getTable('ad') . ' SET view = 2, amount=466 WHERE ad_id = 36');

    И не делайте себе мозги.
    Вы и сейчас-то смотрите на этот запрос как баран на новые ворота. А через месяц и вовсе перестанете понимать, что имели в виду.
    Ответ написан
    Комментировать
  • Несколько разных dns серверов?

    martin74ua
    @martin74ua
    Linux administrator
    Зачем писать NS от mail.ru ?
    Они предлагают это сделать для ленивых - чтобы не вникать, какие записи надо внести в домен - передайте домен на dns хостинг к нам и не думайте.
    Почитайте внимательно их документацию, они вам скажут, что конкретно надо добавить в доменную зону. И все у вас будет хорошо...

    А мешать в одном домене ns сервера с разных провайдеров - это такое.. На клаудфларовском у вас нету записей от mail.ru, на mail.ru нету записей от клаудфлара... В результате - почта у вас то работает, то не работает... Сайт то открывается, то не открывается....
    Ответ написан
    1 комментарий
  • Что сработает быстрее, что лучше использовать?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Хороший вопрос, хотя и задавался миллион раз.

    Когда у вас выполняется запрос
    SELECT * FROM users WHERE DATE(created_at) = '2024-04-14'
    то СУБД должна пройти весь индекс до конца, получить каждое значение created_at, применить к нему функцию, сравнить с переданным значением, и добавить строку в результат запроса.

    Когда у вас выполняется запрос
    SELECT * FROM users WHERE created_at BETWEEN '2024-04-14 00:00:00' AND '2024-04-14 23:59:59'

    То СУБД находит бинарным поиском первое нужное значение, потом бежит по заранее отсортированному индексу и возвращает все значения до последнего, подходящего под второе условие.
    Ответ написан
    4 комментария
  • Заразятся ли 2 раздела диска если на один из разделов попадёт вирус?

    @pfg21
    ex-турист
    главный элемент заражения, чтобы вирус заработал в операционной системе.
    как только его код начнет работать - он заразит до всего чего дотянется и пофих ему до всех делений.

    если он лежит неактивным файлом на носителе, то даже в соседнюю папочку его можно скопировать только ручками.
    Ответ написан
    Комментировать
  • Как получить доступ у серверу извне?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Рисуем схему.
    Обозначаем подсети и адреса.
    Берем и пытаемся "вручную" доставить пакет от точки к точке. Что значит "вручную"? Это значит, что проговариваем действия, которые должна выполнить система для успешной доставки пакета (абстрагируясь в этот момент от того, что там стоит).
    Когда пакет "доставлен" - начинаем проверять - а все ли необходмые условия для его доставки соблюдены? Маршрутизация, разрешение на файрволлах, NAT, всевозможные хитрости... и таким образом приходим к тому, что надо сделать.
    Ответ написан
    Комментировать
  • Как перезаписать файл в Linux без права на его прочтение?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    2 варианта:

    1. Полностью перезаписать его: echo 'New data' > write-only-file
    2. Дозаписать данные в конец: echo 'New data at end' >> write-only-file
    Ответ написан
    2 комментария
  • Будет ли доступен принтер из другой подсети?

    @alexalexes
    Asus RT-G32 или WL-520GC

    Отключаете на этих устройствах DHCP-сервер, втыкаете в него шнурок в любой lan порт (не wan!) от роутера TL-WR740N (на котором включен DHCP-сервер). Получаете точно такой же свитч, как у вас Dlink.
    Ответ написан
    1 комментарий
  • Что такое кластерный индекс в mysql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    6 комментариев
  • Подключение коммутатора к роутеру?

    @TheBigBear
    СтарОдмины мы
    1. Проверь провода.
    для линка 100Мбит достаточно 2 пар (оранжевая + зеленая), так что при пропадании синей или коричневой пары линк будет переходить с 1Гбит на 100 Мбит
    А TP-Linkи вполне надёжные аппараты
    2. DHCP сервер нисколько не нагружает ни сеть, ни роутер. Его задача - раз 10 мин (раз в час или сутки - как настроено) предоставить IP адрес обратившемуся к нему устройству. Да и не попадались мне коммутаторы (кроме микротика) с функцией DHCP сервера
    3. Именно так. И я так понимаю - основной трафик сейчас в сети генерируют камеры в регистратор? Но так они уже и гоняют его по своему Poe коммутатору
    И совет
    Если устройство (например принтер) имеет и LAN и WiFI - подключай по LAN. Так надёжней
    Ответ написан
    7 комментариев
  • Как разделить сеть на несколько подсетей, чтобы в каждой был определенный вид устройства и настроить для каждой сети получение адреса по dhcp?

    martin74ua
    @martin74ua Куратор тега Сетевое администрирование
    Linux administrator
    выкинуть неуправляемый коммутатор, использовать только управляемые
    если надо так поделить сети - используйте вланы.
    Ответ написан
    Комментировать
  • Какой поставить прокси на предприятие?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Локальная PKI у вас развёрнута, для начала? Иначе не знаю, чего вы там при повсеместном, слава тебе, господи, распространении HTTPS, собираетесь контролировать.

    Сквид не устарел.
    Ответ написан
    3 комментария