Ответы пользователя по тегу MySQL
  • Друзья в чем проблема пм пж?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Проверить кодировку сервера (apache - AddDefaultCharset utf-8)
    2) Проверить кодировку соединения с бд (должна соответствовать utf-8)
    3) при подключении задать set names utf8
    Ответ написан
  • Почему сайт выдает 500 ошибку?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Хостер обновил версию пыха?
    Ответ написан
  • При работе с mysql каким инструментом пользоваться лучше на windows?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Понимаю, что phpmyadmin не совсем подходит для работы с базами данных. Загибается если даешь ему выполнить сложный запрос.
    Сомневаюсь что дело в пхпМА.

    Через консоль работаю и более-менее нормально, но нет визуальной оболочки, что тоже иногда нужно.
    пхпМА - > SQL - и запросы и визуально.

    Если же выполняю сложные выборки, где участвует count(*), то сервер баз данных падает.
    Никакой инструмент от этого вас не спасет, причем тут это к вопросу?

    Посоветуйте как это должно работать у мелкой веб-студии? Какой софт и как работать локально с большими базами данных?
    По идее хватает консоли для, допустим, импорта больших дампов, и пхпМА как вполне себе визуальной среды. Есть воркбенч, он вроде бесплатный, но я как то не припомню ситуации где его функционал прям порвал майадмин. 99% случаев майадмин более чем достаточно.

    Благодаря индексам по каждому полю, по которому ведется поиск. спасает только из дампа вырезание строчек, связанных с индексированием, но индекс потом же придется делать всё равно.
    Это стандартная процедура есличо, только никакие строки вырезать не надо.

    Какой софт и как работать локально с большими базами данных?
    Софт особо не критичен, тормозит не софт, а собственно бд. Поставьте одну машинку помощнее, памяти побольше, проц пошустрее, диски ссд, и будет вам счастье. А, ну и експлейн для запросов чаще юзайте.
    Ответ написан
  • Почему SQL-запрос не захватывает строки с NULL?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    NULL в мускуле не является нулем, это отдельный тип данных не входящий в сравнительные диапазоны и должен быть проверен отдельно, то есть надо добавить or currency_code IS NULL
    Ответ написан
  • Влияет ли длина поля в MySQL на производительность базы данных?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Например, при создании таблицы MySQL просит вписать максимальную длину каждого поля.
    Поля они разные бывают. Например для integer или smallint вообще никак не влияет, этот параметр влияет только на отображение, физически бд все равно выделяет под него всю размерность поля. Для варчар - да, влияет в случае индексов, чем короче строка тем быстрее индекс.
    Ответ написан
  • Как брать только первую цифру ID категории?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Насколько я понял, вы храните список категорий в одном поле через запятую. Это изначально неверный подход, противоречащий 3 нормальной форме, кроме того больше приносящий вреда и гемора чем профита. Кажущаяся "простота" такого подхода (как видно из вашего примера) оборачивается проблемами как только нужно применить логику чуть сложнее "выбрал-показал". Скорее всего при такой структуре самым "хорошим" решением будут циклы с запросами, что само по себе уже кошмарный говнокод.

    Как вариант решения конкретно этой задачи - можно так:

    foreach ($posts as $post) {
        $postsCat[trim(explode(',', $post['category'])[0])][] = $post['alt_name'];
    }
    unset($posts);
    Ответ написан
  • Как загрузить файл и записать его имя в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) $id видимо определен выше вызова функции, но как уже вам указали - область видимости внутри функции - локальная, все что не определено внутри тела функции для нее не существует, исключение - глобальные переменные.
    2) Научитесь пользоваться дебаггером, например xdebug, или хотя бы используйте var_dump().
    3) sql запросы СНАЧАЛА формируете в виде строки, затем передаете в вызов, тогда можно будет их вывести и посмотреть что с ними не так, подозреваю что в варианте который вы "поправили" проблема в отсутствии поля user_id которое скорее всего обязательное. Можно проверить напрямую введя этот запрос в консоль мускуля или через phpmyadmin.
    4) Код кошмарный, во-первых зачем-то засунут в функцию, хотя этот код вряд ли будет использоваться дважды, во-вторых функция использует внутри себя глобальные переменные, что плохо. Почитайте про чистые функции. Про метод "проверки" переменных вообще нет слов, сплошь междометия...
    Ответ написан
  • Просмотр dump mysql?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    1) Скачать денвер и залить дамп гораздо быстрее чем работать с сомнительным сервисом третьих производителей
    2) Лить данные, имеющие хоть какую-то реальную инфу на сторонние сервисы - как минимум неумно.
    Ответ написан
  • Как разгрузить большую базу?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    это чисто примерный запрос, но т.к. я в sql полный профан, прошу объяснить что в нем неверного.

    Подскажите как можно снизить нагрузку и увеличить скорость запросов при условии оптимизированного кода и запросов.
    При условии оптимизированного кода и запросов нагрузка будет примерно никакой, так как у вас они судя по представленному explain ооочень далеки от "оптимизированных".
    Ответ написан
  • Как скачать картинку, которая хранится в blob?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . $fileData[0]['file_name']); 
    header('Content-Transfer-Encoding: binary');
    Ответ написан
  • Как исправить ошибку: Too many connections в MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Нет смысла руками рвать соединение, при завершении скрипта коннект закроется автоматически. В вашем же случае весьма вероятна ситуация что коннект порвали зря и скрипт еще не отработал до конца.
    2) Онлайн порядка 500-1000 чел.Для запаса я бы поднял количество соединений до 1/4 онлайна. Зависит конечно от специфики сайта, но иногда их реально не хватает если сервер с активным взаимодействием с бэкендом.
    3) Для драйвера бд пишется враппер, не по тому что это модно или прям необходимо для работы, а как раз на такие случаи, в логику врапера пишется опциональное логирование запросов и сразу видно "кто где срал", сколько реально запросов бегает и что вообще происходит. Тогда можно что-то решать на уровне много/мало и куда что крутить. В частности, может оказаться что коннект происходит чаще чем вы думаете и вовсе не там где задумывалось...
    Ответ написан
  • В чем ошибка авторизации?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Хранить пароли в открытом виде - полный ахтунг.
    2) Как уже указали - скобки в селекте не нужны
    3)
    выпадает ошибка ERROR 1 т.е. ошибка существования логина, хотя он есть
    "а вот тут ты не прав малой"(с), не ошибка существования логина, а пустой результат исполнения запроса. Что вызвано именно кривым запросом.
    Ответ написан
  • Как при INSERT задать значение поля на основе PRIMARY KEY?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    START TRANSACTION;
    insert into `table` 
    (`number`) values (0);
    
    update `table` 
    set `number` = CONCAT("10", LAST_INSERT_ID()) 
    where `id` = LAST_INSERT_ID();
    COMMIT;
    Ответ написан
  • Какой нужен запрос в базу MySQL для выборки всех детей вместе с родителями при структуре Nested Sets?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Для такой структуры больше подходят отдельные таблицы для каждой сущности: области, района, населенного пункта.
    Ответ написан
  • Как получить одно значение из бд?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Да, так и должно быть, никто не может угадать заранее что и как вы будете запрашивать, по этому запрос ВСЕГДА возвращает массив, в случае если результат не пустой. Соответственно ваше значение будет в $res['name']; в случае построчного чтения результатов запроса, или $res[0]['name']; в случае получения массива целиком.
    Ответ написан
  • Что не так с SQL запросом?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    в мускуле не допускается использование таблиц из delete в подзапросах (емнип как и в других РБД).
    Как вариант - обернуть запрос в дополнительный селект, тем самым организовав временную таблицу для внутренней выборки.
    На будущее, для лучшего понимания проблем в запросе:
    1) Аккуратно форматируйте запрос, разбивая на строки каждую конструкцию из запроса.
    2) Следите за номером строки выдаваемом в ошибке запросов, так вам будет легче локализовать проблему.
    3) Крайне не желательно вывод ошибок осуществлять на русском, старайтесь использовать англоязычные инструменты. Это позволит быстрее находить ошибки по тексту, не путаясь в переводах.
    Ответ написан
  • Почему не срабатывает фильтр в MySQL?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    $sql = "SELECT * FROM `smirnov` WHERE visible='1' ORDER BY '$sorting' ";
    $sorting откуда у вас берется?
    Ответ написан
  • Искажается хеш из MySQL при проверке пароля - как поправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первый вардамп не проходит, во втором (где сам генерит и сам проверят ) - все нормально.
    Соль?

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Идея на троечку с минусом.
    Во первых нарушает 3 нормальную форму,
    во вторых требует модификации сторонних "чистых" сущностей, размазывая логику
    в третьих - если у человека 10 диалогов - какой из них вы будете писать в МОЙ лист верхним?
    Ответ написан
  • Стратегия хранения заказов?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    ИМХО(во всяком случае я делаю так):
    есть таблица orders, с которой связана ordered_items, которая в свою очередь суть дубль таблицы товаров, кроме поля qty - количество. И в админке можно открыть заказ, посмотреть товары, поудалять если отказались етц...
    Ответ написан