Задавайте вопросы, мы ответим
Вы не зашли.
При выполнении команды INSERT текст на английском из форм вводится в базу полностью. На русском только по первой букве в каждый столбец. Кадировка таблицы utf8, в конфиг файле по умолчанию тоже utf8. Вот только из списка <select></select>информация на русском вводится нормально.
Прошу кто знает мне помочь
Неактивен
SET NAMES utf8 забыли
Неактивен
нет не забыл. они тоже есть. Но что интересно, из форм русский текст в таблицу не записывается, а из списка <select> строка записывается
Неактивен
Значит, у Вас плохо передаются данные в приложение?
Попробуйте вывести текст запроса перед его выполнением.
Неактивен
Разобрался с ситуацией. Оказалось из за функции strtolower. В коде есть строка $name=ucfirst(strtolower(trim($_POST['name']))), которая удаляет пробелы из формы, переводит данные в нижний регистр и переводит первую букву слова в верхний регистр. Вот функция strtolower преобразует русские буквы в квадратики и в базу они не заносятся, а применяя функцию ucfirst первая буква принимает нормальный вид.
Вот такие чудеса творятся!
Но теперь другой вопрос. Как иначе перевести весь текст в нижний регистр?
Неактивен
> SELECT LOWER('прИвеТ'); +-----------------------+ | LOWER('прИвеТ') | +-----------------------+ | привет | +-----------------------+ 1 row in set (0.00 sec)
Или используйте многобайтовые аналоги строковых функций PHP.
Неактивен