Intereting Posts
Вставьте новую запись, если она не существует, и обновите, если она существует, laravel eloquent Проверка, а затем перенаправление на почтовый маршрут в Ларавеле Неопределенное смещение 1 PHP конвертирует KB MB GB TB и т. Д. В байты Symfony Sonata Media Bundle добавляет изображения / видео пользователю Выбор записей между двумя датами с использованием PHP из базы данных MySql Получить высоту и ширину изображения как целочисленные значения? Изображение не публикуется при использовании e.preventDefault () в jquery ajax Встроенный Javascript-интерпретатор для php Преобразование ассоциативного массива в индексированный Могу ли я использовать SimpleXML & Xpath для непосредственного выбора атрибута Elements? Заголовок PHP перемещается вверх по одному каталогу? Загрузка файла в Yii с помощью ajax Добавление минут к дате времени в PHP Использование PHP-скрипта: почему mysqldump не сбрасывает sql-файл?

PDO, отрезая строки с символом UTF-8

Я использую PHP 5.5, и когда я пытаюсь вставить символ UTF-8 в базу данных MySQL, PDO отключает его при первом символе, отличном от ASCII.

Я установил мое соединение:

(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS, array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)) 

Я попробовал SET NAMES, что все сообщения, но это не работает либо потому, что проблема НЕ на стороне MySQL.

Когда я вставляю phpMyAdmin и непосредственно из консоли MySQL, он работает! Когда я выбираю акцентированную строку с PDO, она работает!

Проблема заключается только в INSERT и UPDATE используя PDO специально!

Вот SQL таблицы. Это все в UTF-8, но, возможно, кто-то знает о конфликте между настройкой и PDO

 CREATE TABLE IF NOT EXISTS `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_lang` int(11) NOT NULL DEFAULT '2', `id_tgroup_cat` int(11) NOT NULL, `fieldfor` int(11) NOT NULL, `colors` varchar(100) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ; 

Я уже пытался сделать текст полем varchar и ничего не изменил.

Фактическая вставка в PHP:

  $query = $this->db->prepare("UPDATE mytable SET text = ?, colors = ? WHERE id = ?"); $query->execute(array($text, $colors, $id)); 

Где $text = "référence" (только сохраняет букву R в базе данных, но без акцентов она сохраняет все), а $ colors – пустая строка для тестовых целей, а $id2 .

Solutions Collecting From Web of "PDO, отрезая строки с символом UTF-8"