Есть ли смысл начать с устаревшего материала?4-5 лет не сказать что сильно устаревшие. ИМХО спокойно можно учиться, основы будут одинаковы для любой версии языка, изменения в новых версиях большей частью касаются ООП составляющей, до которой еще дойти нужно. В целом и ООП код более старых версий совместим с последними версиями, во всяком случае с 5+, в обратную сторону конечно же работать не будет. Ну а новые фишки по типу тайпхинтинга и анонимных объектов можно доучить и самостоятельно.
Решением было только поменять кодировку таблицы базы данных MySQL, но в моем случае она была utf8mb4, которая должна поддерживать эмодзи.Так как utf8mb4 "обратно совместима" с utf8, все кроме 4байтных символов будет нормально отображаться. Соответственно при указании настроек соединения стоить исправить чарсет на utf8mb4, который по умолчанию у вас скорее всего utf8.
5) Какие главные минусы против чтобы временную метку хранить просто как число unixtimestamp? То что выборки , когда нужны всякие DATE специфичные функции, потребуют преобразования в тип дату в каждой строке? (это преобразование может не сложное?, ведь datetime и так хранится как число)Как минимум то что у вас дата не хранится как дата. Про то что не будут работать стандартные функции работы с датами типа разницы в год, месяц, неделю и прочие весьма неочевидные преобразования я вообще молчу, чего стоит банальное вычисление количества дней до, например, конца месяца, с учетом того что каждый месяц имеет разную длину, не говоря уже про високосные года, ну и всякие расписания, где работа с минутами/часами без готовых функций тоже так себе удовольствие. Кроме того, таймстамп имеет свои ограничения, например в нем нельзя хранить даты раньше чем 1970 год, то есть пользователи старше 55 лет дату рождения сохранить не смогут. Ну и горизонт планирования до 2038 года, дальше все. Алсо, вы теряете защиту от кривых данных на уровне типа поля, что тоже +1 в копилку встроенных типов.
ini_set('error_reporting',E_ALL); ini_set('display_errors', 1);
Посоветуйте, как можно было бы максимально безболезненно восполнить утраченные знания, а также наверстать упущенные новшества в языке?
Сейчас хочу попробовать реализовать научный проект.Собсно практика - лучший учитель, садитесь и пишите. Если базу уже знаете реализация не станет проблемой. По ходу решения текущих задач проекта познакомитесь со всеми нужными изменениями и практиками, сегодня на любой чих есть дока, туториал, видео и чатжпт. Двух зайцев двумя плюсами, так сказать...
Мне нужна функция на php, которую можно вызывать и при загрузке страницы, и в том числе в фоновом режиме, которая заполняла бы поля на странице.Странице чего? Вашего сайта или чужого? И что значит "в фоновом режиме"?
Щелчок на кнопке - вызов php-функции - заполнение полей на странице без перезагрузки.Аякс. опять же, зависит от того чей сервер. Естественно на фронте код будет на яваскрипте, так что чистым пхп не обойдешься.
Возможно ли такое? (Пока на WordPress) Спасибо.Возможно, но есть условия. Часть из них перечислил выше, остальные зависят от ваших умений.
Нагрузка на ЦПУ при этом пике 30-40%это че за нагрузка при 3рпс? Профилирование нагрузки - первый шаг, балансер и горизонтальное расширение это шаг стопитьсот, когда вы упираетесь в потолок того что может вытянуть сервак. 90% что проблемы в количестве (и качестве) запросов к бд, крайне маловероятно что код у вас настолько сложный, что не вытягивает...
обращается к основной БД через коннект по приватному IP адресу в сети серверов Амазон.Тестом запустите подряд 20-30 разных запросов с разным размером ответа, каждый замерьте, подозреваю что будете не очень приятно удивлены...
запросы на дополнительном сервере начинают отрабатывать по 5, 15 а иногда и 50 секунд.А на основном все остается норм? В любом случае - профайлинг наше все, + под нагрузочным тестированием хоть как-то.
Подскажите, что не так
рассылка приходит только 1000 пользователям.Если прям ровно 1000, очевидно это ограничение ТГ.
ТГ никаких ошибок не выдает.Как это проверяется?
$res = $this->app->forwardMessage(...)
очевидно что-то возвращает, подозреваю ответ в виде саксесс/фэйл, но вы его нигде не используете.$response->getMessageId();
для определения удачного запроса. и при загрузке страницы мне сразу выводится "4"Логично, так как пост пустой, а не нулл, а в остальных случаях срабатывают проверки на метод пост(вызванные через гет) и непустые пост поля, которые как бы пустые при методе гет.
но скрипт php как будто работает один раз при загрузке страницы и все,Скрипт пхп ВСЕГДА работает 1 раз. При каждом обращении вы создаете запрос, скрипт его отрабатывает и умирает.
как сделать чтобы при отправке данных скрипт php отслеживал это ?Так он отслеживает, просто вы с этим отслеживанием ничего не делаете. Посмотрите ответ сервера в запросе к message.php, ну и сделайте в js обработку ответа фетч запроса какую-то... То что метод называется буквально "взять" вас не на какие мысли не наталкивает? ))
if($query = $db->query("SELECT `login`, `password` FROM `admin`")){
Не стоит выбирать все записи из таблицы, если вам нужна одна, та где логины совпадают. Это в целом плохая практика, но еще хуже когда такой подход будет применен к большой таблице. SQL для этого и придуман чтобы так не делать. Так же, если у вас есть таблица пользователи, не нужно дублировать функционал, перенесите админов туда же, указав им уровень доступа или роль.$message = $_session['message']??'';
; и $_session['message'] очищаем. Тоже самое делаем с $old, не забывая что там обычно массив;