Вставьте специальные символы / PHP + MySql + Android

Этот вопрос задавался много раз, но ни одно из предложенных решений не помогло мне 🙁

Мне нужно вставить специальные символы, например, ‘(закрывающий апостроф), в БД MySql через PHP с помощью Android.

MySql Таблица определяется как:

ENGINE=InnoDB DEFAULT CHARSET=utf8;

Данные передаются в PHP через Джава, так:

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("param1", value1));
nameValuePairs.add(new BasicNameValuePair("param2", value2));

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("blabla.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
response = httpclient.execute(httppost);

PHP получает это так:

//To be able to receive UTF-8 (needed?)mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');

$param1 = $_POST['param1'];
$param2 = $_POST['param2'];

//Convertsion to UTF-8 (needed?)
$param1 = utf8_decode($param1);
$param2 = utf8_decode($param2);

$mysqli = new mysqli($hostname, $username, $password, $dbname);
mysqli_set_charset('utf8',$mysqli);
$mysqli->prepare("INSERT INTO ...

Команда вставки вставляет запись, но специальные символы становятся «?» в таблице.
Любая помощь?

то есть «A’B» становится в DB: «A? B»

Спасибо

2

Решение

Удаление звонков на utf8_decode функция сделала свое дело!

0

Другие решения

Попробуйте функцию mysqli_real_escape_string (). Это экранирует специальные символы в строке для использования в операторе SQL с учетом текущей кодировки соединения.

Пример:

mysqli_real_ecape_string($mysqli,$param1);
mysqli_real_ecape_string($mysqli,$param2);
-1

По вопросам рекламы [email protected]