Ответы пользователя по тегу MySQL
  • Не записываются данные в таблицу Mysql, как исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    тут только один запрос на вставку, зачем тут 3 запроса?

    В логах сервера ошибок нет.
    Это говорит только о том что логирование не настроено

    if ($aff_id && $parent_aff_id){
            global $wpdb; 
            $table = $wpdb->prefix . 'uap_relations';
            $sql = "INSERT INTO $table VALUES(NULL, %d, %d)";
    var_dump([$aff_id, $parent_aff_id]);
    var_dump($sql); exit(); //тут смотреть и думать
            $q = $wpdb->prepare($sql, [$aff_id, $parent_aff_id]); //здесь вроде массив должен быть
            $wpdb->query($q);
          }

    Во первых посмотреть что в переменных, для этого есть вар_дамп.
    Во вторых, если переменные не пустые, взять запрос, подставить руками значения и выполнить запрос из пхпмайадмин или из оболочки напрямую. Скорее всего какое-то поле является обязательным, но не входит в ваш запрос, либо первое поле (id?) не автоинкремент... В любом случае вы увидите ошибку.
    Ответ написан
    5 комментариев
  • Как отредактировать огромный SQL-файл?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    по доке не пробовали?
    UPD: https://serverfault.com/questions/51982/converting...
    UPD2: емнип, вроде как все индексы и ключи надо убить, после этого сделать конвертацию и создать ключи / индексы, что серьезно ускорит процесс.
    Ответ написан
    Комментировать
  • Как текст с БД вывести в html тег img?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Не хочется писать "а я говорил"...
    1) НЕ ХРАНИТЕ В БАЗЕ ПУТИ, храните только имена файлов.
    2) Не путайте (а вы я вижу серьезно запутались) абсолютные пути (они только для работы с файлами на сервере) и относительные пути (для отображения путей относительно сервера). В хтмл ВСЕГДА выносятся относительные пути. И относительный путь должен начинаться с / (корень сайта). У вас он начинается с имени папки. Слеш добавьте короче, а то он считает папку, добавляя эту строку к текущему урл.
    3) Что, кстати возвращает нас к п.1, не надо хранить пути в базе.
    4) Впереди вас ждет много интересного, так как рано или поздно у вас все равно вася пупкин и вася губкин зальют картинку с одним и тем же именем и у обоих будет одна аватарка на двоих, как этого избежать я уже писал.
    Ответ написан
    1 комментарий
  • Как реализовать добавление фотографий пользователей с папки в MySQL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    нарабоки класс, осталось мелочи:
    0) проверить что это картинка
    1) проверить что имя картинки уникальное, а то у сотен юзеров будет аватар untitled.jpg последнего загрузившего фото юзера (хинт: лучше не брать то которое дал юзер, а формировать свое гарантировано уникальное, например от логина пользователя)
    2) Указать в запросе условие where, в котором привязать каритнку к конкретному пользователю, а не всем сразу
    Ответ написан
  • Какие значения вставлять в VALUE?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я щас опять банальщину немного прогоню, но на будущее и в помощь:
    1) Не надо использовать global, это плохо, это говорит о том, что вы что-то делаете не так, совсем не так, и скоро ваши проблемы усугубятся многократно. На этом этапе надо включить голову, подумать почему так вышло, и переделать, пока не слишком поздно и код не превратился в добротное гуано.

    2) Пока вы учитесь и не можете "на глаз" прикинуть что и как работает и почему работает так, а не иначе - var_dump() - ваш рулевой, если что то не работает - начиная от точки отказа и назад к источнику по порядку - фигачете вардамп всего что движется. Так во первых вы найдете что не работает гораздо быстрее нежели на форумах или тут, а во вторых будете попутно делать для себя массу открытий, что все работает вовсе не так как вы думали и содержит не то что вы подразумевали.

    Есть более продвинутые инструменты а ля xdebug, как созреете - можете на него переходить, это гораздо эффективнее. Но на первом этапе хватит и вардампа.
    Ответ написан
  • Как исполнить код взятый из базы?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Подход реально наркоманский, если вы включаете какой-то функционал и хотите им управлять - создайте заготовки кода и храните в базе флаги выполнения условий. Так как вы это задумали - наркомания чистой воды.
    Ответ написан
    2 комментария
  • БД статьей на mysql как превратить заголовки статьей в ссылки html файл?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Что нужно поменять в скрипте, чтобы бонус выдавался раз в 24 часа,
    не зависимо от того зашел пользователь на сайт или нет.
    Ваще ничего, тупо отсчитывать количество дней от начала вашего "аттракциона невиданной щедрости" и выдавать это количество как монеты. Можно показывать только тогда когда юзер за ними зашел, ну и в тот же момент вносить в бд )
    Ответ написан
    Комментировать
  • MySQL не запускается после неудачного завершения работы. Как восстановить?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Проверьте pid файл, если он есть его надо удалить.
    Ответ написан
    Комментировать
  • В каком виде хранить даты исторических события в БД?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    www.realcoding.net/articles/funktsii-raboty-s-data...

    SYEAR или YEAR Год, записанный словами, а не цифрами; если указано'S' то перед датами до нашей эры ставится '-'.
    BC или AD BC- до нашей эры(до н.э.); AD - нашей эры
    B.C. или A.D. B.C.- до нашей эры(до н.э.); A.D. - нашей эры
    Ответ написан
    Комментировать
  • Оптимизация запросов mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) как уже указал вам Кирилл Несмеянов - читайте про джоин, ин и вложенные запросы, задача как раз классическая на джоин и ин.
    2) Абсолютно верно замечено John Didact - из бд вы ВСЕГДА получаете "плоские" данные, однако вы можете для себя их разделить префиксами в алиасах и обработать на стороне кода как удобно.
    3) Большой запрос с множеством джоинов почти всегда лучше нескольких маленьких. Исключение - большие массивы текстовых/блоб полей, но и это обычно не критично, если выставить адекватные лимиты. Как минимум, преимущество в возможности удобного кеширования. Плюс время на открытие/закрытие соединения, плюс не надо гонять туда-сюда полученные данные несколько раз.
    Ответ написан
    Комментировать
  • Могут ли взломать Mysql через открытый порт 3306?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - откуда вы взяли что бд доступна снаружи? Есть конфиг от бд? 99,9% провайдеров закрывают доступ к бд снаружи, все работает только через локалхост.
    Во вторых - гораздо проще поломать через код, чем брутить пассворды мускуля. читайте свежую статейку от пинтестера на хабре, много интересного узнаете.
    Ответ написан
    Комментировать
  • Насколько нужно неакутуальные данные выносить в отдельные таблицы MySQL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Сильно зависит.
    Во первых на таблицы могут быть навешены внешние ключи, перенос данных в другую таблицу может "сломать" логику.

    Во вторых, если таблица предполагает наличие реально большого объема, например > 1М записей, имеет смысл что-либо делать, в ином случае вынос в отдельную архивную таблицу мегапрофита не принесет.

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    select * from (
        (select * from `games`
    where  date > now()
    order by date desc)
    union
    (select * from `games`
    where  date < now()
    order by date )
                  ) a
    limit 0,50
    Ответ написан
    Комментировать
  • Кто виноват сервер не тянет или скрипты надо допиливать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Буду благодарен за любые мысли.

    Мысль - а неплохо бы для кода профилирование с таймингом сделать, можно посмотреть на какой операции обычно происходит затык при нагрузке.
    Ответ написан
    1 комментарий
  • Друзья в чем проблема пм пж?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Хостер обновил версию пыха?
    Ответ написан
  • Почему SQL-запрос не захватывает строки с NULL?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    NULL в мускуле не является нулем, это отдельный тип данных не входящий в сравнительные диапазоны и должен быть проверен отдельно, то есть надо добавить or currency_code IS NULL
    Ответ написан
    3 комментария
  • Как брать только первую цифру 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) Код кошмарный, во-первых зачем-то засунут в функцию, хотя этот код вряд ли будет использоваться дважды, во-вторых функция использует внутри себя глобальные переменные, что плохо. Почитайте про чистые функции. Про метод "проверки" переменных вообще нет слов, сплошь междометия...
    Ответ написан