выставлять явно utf8 везде где только найдёте... И даже после этого всё равно придётся помнить об отличиях многобайтовых кодировок от строго однобайтовых - много тут граблей собирать можно, к сожалению.
Я вот понять не могу,значит подключение к базе данных проходит
Тут такой фокус, что к mysql действительно возможно подключиться абстрактно, не к какой-то конкретной БД, а просто подключиться и уже затем, например, запросить список доступных баз и подключиться к какой-то из них.
Можно даже данные читать не указывая имя базы подключения, но тогда имя базы необходимо будет указывать в самом запросе:
Ну и откуда в базе добавлялись данные? Руками каким-то sql-клиентом или с другого скрипта? У mysql может быть выключена валидация UTF8 для текстовых полей, да и вообще там знатный бардак с разными кодировками вплоть до каждого отдельного столбца... То есть к сожалению нельзя исключать вероятности, что данные в самой базе сохранены в битой кодировке.
Не могу прочитать вашу локаль. Но ошибка 1046 - No database selected
Парсер DSN в PDO весьма глупый сам по себе. И pdo_mysql ошибками за найденные странные параметры не плюётся.
Короче говоря, пробелов в параметрах строки подключения к mysql быть не должно.
"dbname = ijdb" - параметр "dbname " вместо "dbname"
"dbname= ijdb" - параметр "dbname" правильный, базу искать будем с названием " ijdb"
"dbname=ijdb" - только так.
Ну хоть после ; стоит обработка isspace, 'mysql:host=localhost; dbname=ijdb', - так можно
Архитектура правильная - очереди:
поставить сервер очередей
из веба ставится задача в очередь, как-то регистрируется что вот такая задача от вот того пользователя и ничего больше не ждёт
серверный процесс (да хоть из крона) опрашивает, есть ли новые задачи в очереди. Если есть - выполняет и сохраняет куда-нибудь результат
веб может в любое время уточнять, выполнена ли уже задача и получать результат
Если вы используете prepared statements - то за корректный транспорт значений отвечает prepared statement.
Важно, что кодировка соединения должна быть указана в DSN строки подключения.
Потому что браузер повторяет весь HTTP запрос. Некоторые браузеры дополнительно переспрашивают, мол будет форма отправлена второй раз, хотите?
А раз форма отправляется повторно - то и кнопка вместе с ней.
Не имеет никакого отношения к базам данных.
Обычно после успеха обработки формы делают редирект куда-то.