GutsOut
10.12.2013 - 14:55
Здравсвуйте, имеется php-скрипт(кодировка utf8) котрый выполняется в командной строке, который должен писать в бд данные в кодировке utf8, используется PDO. Если это важно: при вводе данных с клавиатуры латиницей, mb_detect_encoding($some_value) показывает ASCII, кириллицей - UTF-8, т.е. в случае с кирилицией - все ок). Откуда взялась ASCII вообще не понятно. Но это не главный вопрос, главный вот в чем - при привязке и выполнении:
$sth -> bindParam(':parameter', $some_value);
$sth->execute();
если значение $some_value - кириллица, то в бд попадает пустое значение, а точнее ничего не попадает.
если значение $some_value - латиницей, то все ок.
Помогите, пожалуйста.
DarkLotos
10.12.2013 - 15:02
Цитата |
в бд попадает пустое значение, а точнее ничего не попадает |
Уточните, попадает пустое значение или ничего не попадает?
пустое значение это когда запись создаётся, но в полях таблице ничего нет
а ничего не попадает, это когда в бд даже не создаётся новая запись.
Нужно проверить несколько вещей:
1. Кодировка файла скрипта (обычно UTF-8 без BOM)
2. Кодировка соединения с БД (устанавливается через mysql_query("SET NAMES 'utf8'"); или mysql_set_charset)
3. Кодировка БД (utf-8_unicode_ci или utf-8_general_ci)
4. Кодировка таблиц в БД (utf-8_unicode_ci или utf-8_general_ci)
GutsOut
10.12.2013 - 15:30
Да, запись создается, но поля пустые.
1. Кодировка файла скрипта - UTF-8 without BOM
2. Кодировка соединения с БД - делал так:
$db_connection = new PDO("mysql:host=$host;dbname=$db_name", $user, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
3.Кодировка БД - utf8_general_ci
4. Кодировка таблиц в БД - utf8_general_ci
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.