Задать вопрос
Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
Ответы пользователя по тегу PHP
  • Сколько и каким образом "отлавливать" исключений (ошибок) при запросе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Во-первых и в самых главных - не заниматься фигней и не делать бессмысленную работу.
    Но для этого надо немного понимать, как работают веб-приложения.
    В частности, что "500 ошибка" - это и есть та страница, на которой пишут "Что то пошло не так, повторите позже."
    Соответственно находим шаблон этой страницы и правим под себя.

    То есть ошибки, после которых продолжение работы бесполезно, вообще никак не отлавливать не надо. Ларавель сама за тебя все отловит и напишет. Потому что в ней уже все оформлено, и отлов и обработка. И не надо туда лезть руками.

    Дальше, если ошибка не критическая и продолжение работы возможно, отлавливать трай кетчем.

    Если какая-то не отлавливается - надо смотреть какая и почему. Если самостоятельно не получается - привести полный текст ошибки и код отлова в своем вопросе, а не бубнить "я получаю, а мне надо, а они ниловят"

    В целом же стараться "отлавливать и оформлять" как можно меньше. И стараться понимать, что ты работаешь с современным фреймворком, в котором все нужное уже есть, а не по-старинке говнякаешь на коленке
    Ответ написан
  • Почему не выводит значение одного столбца с бд?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Судя по частоте обращений и степени понимания сути возникающих проблем - вам на Фриланс.
    Вот там как раз ссылочка на гуголь драйв будет более чем уместна.
    Ответ написан
    Комментировать
  • Почему выводится предупреждение Warning: Missing argument?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Эта Очень Сложная проблема относится к области арифметики.
    Доставай свои счетные палочки, сейчас будем её решать.

    Идем в определение функции setTypeVehicule() и считаем сколько в неё надо передать параметров:
    $libelle, один
    $prix, два
    $pric, три
    $image четыре!

    дальше идем в вызов этой функции, и считаем, сколько на самом деле передаём
    $_POST['libelle_type_vehicule'], один
    $_POST['price_vehicule'], два
    $newfilename три!

    Три не равно четыре, а это значит что одного параметра не хватает
    Ответ написан
    Комментировать
  • Может ли Tesseract кушать столько памяти?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Может
    Ты уже задавал этот вопрос
    Ответ написан
  • Почему не работает PDO prepare?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    потому что execute() возвращает не то что ты думаешь, а тыкву.
    о чем тебе недвусмысленно текст ошибки и сообщает

    "без prepare возвращает" потому что query() возвращает объект класса PDOStatement, в котором есть метод fetchAll.
    а execute - это УЖЕ метод объекта $stmt класса PDOStatement, который возвращает БУЛЕВО значение
    и fetchAll надо вызывать из того же объекта, то есть из $stmt, а не из результата execute

    чтобы решить данную проблему и заодно избавиться от лишнего вызова execute() применим немого магии
    class MyPDO extends PDO
    {
        public function preparedQuery($sql, $args = NULL)
        {
            if (!$args)
            {
                 return $this->query($sql);
            }
            $stmt = $this->prepare($sql);
            $stmt->execute($args);
            return $stmt;
        }
    }

    и дальше уже создав экземпляр этого класса обычным порядком,
    $in_arr = ['meter', 'kilometer'];
    $count_arr = count($in_arr);
    $in_questions = str_repeat('?,', $count_arr - 1) . '?';
    $sql = "SELECT * FROM `cpl_names` WHERE `type` = 'length' AND `id` IN ($in_questions)";
    $result = $mypdo->preparedQuery($sql, $in_arr)->fetchAll();
    Ответ написан
  • Как отнять или добавить рандомное число в столбец mysql в php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    если отнимать не больше чем есть, то
    update t set a = a - FLOOR( 1 + RAND( ) * a );
    Ответ написан
  • Где начинающему разработчику подглядеть примеры неговнокода?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    На самом деле надо качать Лару а ещё лучше - Симфони.
    Только не тупо зазубривать, а пытаться понять, почему там так сделано. Это и будет теми самыми примерами.
    И да - не Лару точно. Потому что там очень много магии которая полезна тем кто понимает как она работает и очень вредна для тех кто учится.

    И вот изучая нормальный фреймворк ты как раз и будешь учиться примерам хорошего кода.
    Начать можно с этой хрестоматийной статьи https://symfony.ru/doc/current/introduction/from_f...
    А потом переключаться на https://github.com/symfony/demo

    Честно говоря, я не очень понимаю, что ты имеешь в виду под "знаниями чистого пыха".
    Чисты пых - это синтаксис, учится за две недели.
    А остальное - это уже программирование, общее для любых языков и фреймворков. Отладка, репортинг ошибок, профайлинг, оптимизация, структурирование кода, олгоритмы.

    И кстати я совсем забыл. У нас же есть гений в своем отечестве, Дмитрий Елисеев. На фоне бесчисленных неграмотных выскочек типа хаудихи или, прости господи, руселлера, это реально человек который знает, о чем говорит.
    И - что гораздо реже случается - умеет донести эти знания до аудитории.
    И насколько я понимаю, твой уровень уже должен позволять в принипе понимать, о чем он говорит.
    В общем начать можно отсюда, https://elisdn.ru/blog/113/psr7-framework-http
    и дальше остальные материалы.
    Ответ написан
    8 комментариев
  • Как вывести данные с массива?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В цикле.
    Все операции с массивами всегда производятся в цикле.
    самым удобным циклом в РНР является foreach
    Ответ написан
    Комментировать
  • Что я не так делаю с транзакциями PHP MYSQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В общем в качестве ответа на этот малопонятный вопрос можно выдать только общие рекомендации

    Во-первых, транзакции в БД не имеют вообще никакого отношения к транзакциям в бухгалтерии.
    И к увеличениям балансов.
    Транзакция в БД несет очень простую функцию: гарантировать что все запросы внутри транзакции завершились успешно. то есть чтобы не было неконсистентных данных - в одну строку добавились данные, а во вторую нет. Поэтому транзакция в случае ошибки откатывает все изщменения, которые ты успел сделать.

    При этом все поголовно новички путают транзакции с блокировками. Которые собственно и делают то что тебе хочется - блокируют чтение или запись в таблицу.

    Но при этом тебе и блокировки тоже не нужны, поскольку заниматься такой ерундой, как "прочитать, добавить и записать" в принципе не нужно, поскольку можно совершить атомарную операцию - СРАЗУ в запросе и прибавить нужную сумму, без придварительного чтения.

    Но самое главное - тебе сначала надо решить, каким образом вообще ведется бухгалтерия - добавлением строк, или обновлением строк.
    Ответ написан
  • Реализация объединение кучи баз mysql в одну, под управлением одной админки?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В общем, к "объединение кучи баз mysql в одну, под управлением одной админки" твои проблемы не имеют никакого отношения.

    Базы данных все примерно одинаковые, одним не хватает таблиц, другим столбцов. Это приходится добавлять(но это пол беды).

    В современном мире для этого служат миграции.

    обновление админки, которая функционирует на php. Переписывать запросы в базу, исправлять ошибки, менять название функций, добавлять/удалять переменные и т.д.

    В современном мире это целая отрасль, которая в первую очередь базируется на системе контроля версий. Если в твоём агентстве она не используется, то надо бежать оттуда.
    Потому что вредрить её у тебя вряд ли получится, а работать с распределённой кодовой базой без CVS - это даже не каменный век, а какие-то амебы в первичном бульоне.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Начни пользоваться своими "блогом" и "соц-сетью". Сразу поймешь что пользоваться ими невозможно.
    И начинай допиливать потихоньку.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос, как всегда, совсем не о том.

    Код этих двух "классов управления записями" по сути ведь не отличается друг от друга. Отличается только формат этих записей, в котором класс выдаёт результат работы - либо массив, либо объект.

    То есть вопрос на самом деле - в каком формате работать с книгами в коде - в виде массивов или объектов, а не как ими управлять.

    И ответ на него очевиден - поскольку в объект можно вкрячить кучу функционала, например метод validateISBN(), то однозначно работать с объектами удобнее.
    Ответ написан
  • Как сделать паузу в цикле на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    sleep(3) выполняется в каждой итерации, то есть никаких "остальные все сразу" не будет

    другое дело непонятно зачем спать три секунды когда надо спать одну треть секунды, то есть надо писать

    usleep(400000);
    Ответ написан
    1 комментарий
  • Как через ajax получить данные из php файла?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как через ajax получить данные из php файла?


    Наверное, их надо послать?
    Ответ написан
    Комментировать
  • Как работает memory_limit в php ini?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если у тебя выборка из бызы выедает 50 метров, ты что-то делаешь ОЧЕНЬ неправильно.
    Нормальному пхп скрипту выводящему обычную хтмл страничку нужно край 8 метров.
    Ответ написан
    Комментировать
  • User managment php lib - библиотека для работы пользователями, какие есть?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Уже давно написал бы на Ларе, чем ходить искать "без фреймворков".

    Фреймворкофобия - это болезнь, надо лечиться.
    Ответ написан
    2 комментария
  • Как правильно привязать фото к карточке товара в БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В самом простом варианте вообще никакой инфы хранить не надо - в качестве имени папки тупо берется ид товара, и фотки заливаются в эту папку.
    Ответ написан
  • Как записать в MySQL большое число при создании новой таблицы?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Главная проблема с тем видео которое ты смотришь на Ютубе - оно втирает тебе что писать на пхп можно не зная программирования и SQL. Разумеется, это враньё, только чтобы впарить тебе видео

    Но разумеется это не так. Лучшее что ты можешь сделать - это забыть про все о чем тебе ездил по ушам этот жулик, взять нормальную книжку, например Котерова, и учит язык нормально.

    Чтобы потом таких вопросов но возникало, в таблицу сам мог сделать нормально, такую:

    update_id - int(11) UNSIGNED
    text - varchar(500) character set utf8mb4_unicode_ci
    create_date - datetime
    Ответ написан
    Комментировать
  • Узнать сколько времени осталось unix?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Наверняка есть
    Ответ написан
    Комментировать
  • Почему этот код не работает с Mariabd?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    потому что в "Mariabd" у тебя нет данных по этому запросу.
    Ответ написан