Проблема при вставке символов UTF8 в БД из скрипта - PullRequest
1 голос
/ 09 августа 2011

У меня есть небольшой скрипт, который получает некоторые данные через GET и вставляет данные в БД. Моя проблема при отправке некоторых символов UTF-8. Scritp получает их в порядке, но вставляет их странным образом. Я напечатал запрос на своей странице, выполнил его с помощью phpmyadmin и работает нормально. Итак, моя проблема заключается в выполнении запроса через мой скрипт (он не работает, если я выполняю постоянный запрос с этими символами). Решает ли проблема отправка символов по почте?

Спасибо

Ответы [ 3 ]

1 голос
/ 09 августа 2011

Попробуйте это:

mysql_set_charset('utf8');
0 голосов
/ 09 августа 2011

Добавьте это в php-файл перед вашим запросом:

mysql_query('SET NAMES utf8');

Например:

//DB connection
$con = mysql_connect('localhost', 'root', '');//db details
if (!$con){
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydatabase", $con);//DB name
mysql_query('SET NAMES utf8');
//query
$sql="SELECT * FROM users WHERE uid=".$user_id;// your query
$result=mysql_query($sql);
0 голосов
/ 09 августа 2011

Все ваши настройки должны быть в формате UTF-8. Это означает, что ваша веб-страница, PHP, подключение к базе данных и таблицы базы данных должны быть в режиме UTF-8. Учитывая, что это работает на страницах администратора, а не через скрипт, я предполагаю, что это соединение с вашей базой данных. Попробуйте выполнить set names='utf-8' перед выполнением запроса вставки, и посмотрите, все ли исправлено. Если это так, то ваше соединение с БД использует какой-то ДРУГОЙ набор символов и искажает ваш текст, как это происходит из PHP-> database.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...