SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.02.2011 21:42:27

ruslanaxti
Участник
Зарегистрирован: 11.02.2011
Сообщений: 3

Текст на русском вводится в базу данных не полностью

При выполнении команды INSERT текст на английском из форм вводится в базу полностью. На русском только по первой букве в каждый столбец. Кадировка таблицы utf8, в конфиг файле по умолчанию тоже utf8. Вот только из списка <select></select>информация на русском вводится нормально.
Прошу кто знает мне помочь

Неактивен

 

#2 11.02.2011 22:27:23

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Текст на русском вводится в базу данных не полностью

SET NAMES utf8 забыли smile

Неактивен

 

#3 11.02.2011 23:44:35

ruslanaxti
Участник
Зарегистрирован: 11.02.2011
Сообщений: 3

Re: Текст на русском вводится в базу данных не полностью

нет не забыл. они тоже есть. Но что интересно, из форм русский текст в таблицу не записывается, а из списка <select> строка записывается

Неактивен

 

#4 12.02.2011 01:06:37

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Текст на русском вводится в базу данных не полностью

Значит, у Вас плохо передаются данные в приложение?
Попробуйте вывести текст запроса перед его выполнением.

Неактивен

 

#5 13.02.2011 17:45:08

ruslanaxti
Участник
Зарегистрирован: 11.02.2011
Сообщений: 3

Re: Текст на русском вводится в базу данных не полностью

Разобрался с ситуацией. Оказалось из за функции strtolower. В коде есть строка $name=ucfirst(strtolower(trim($_POST['name']))), которая удаляет пробелы из формы, переводит данные в нижний регистр и переводит первую букву слова в верхний регистр. Вот функция strtolower преобразует русские буквы в квадратики и в базу они не заносятся, а применяя функцию ucfirst первая буква принимает нормальный вид.

Вот такие чудеса творятся!

Но теперь другой вопрос. Как иначе перевести весь текст в нижний регистр?

Неактивен

 

#6 14.02.2011 01:10:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Текст на русском вводится в базу данных не полностью

Код:

> SELECT LOWER('прИвеТ');
+-----------------------+
| LOWER('прИвеТ')       |
+-----------------------+
| привет                |
+-----------------------+
1 row in set (0.00 sec)

Или используйте многобайтовые аналоги строковых функций PHP.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson