2011-12-19 2 views
0

Мой PHP приложение/MySQL пытается вставить следующий в поле VARCHAR:польские символы в PHP MySQL веб-приложение

ł

..however мои данные в таблице хранятся в виде:

& # 322;

Это что-то, что я должен обрабатывать в php или mysql?

Любые советы оценили очень.

Благодаря Пол

Дополнительной информация - данные пользовательский ввод, введенный в текстовое поле, а затем значение, что затем вставляется в MySQL.

Обновлено: Код

function addNewCustomer($data, $aid){ 
     $now = date('Y-m-d H:i:s'); 

     $row = mysql_fetch_array(mysql_query("SELECT MAX(CustomerID) FROM tbl001_Customer")); 

     $query = "INSERT INTO tbl001_Customer 
       (CustomerID,CustomerName,Country,Address1,Address2,Address3,Address4,Postcode,PhoneNumber) 
       VALUES ('".str_pad($row[0]+1,5,'0',STR_PAD_LEFT)."','{$data['quote_customer_name']}','{$data['quotecountry']}', 
         '{$data['quote_address1']}','{$data['quote_address2']}','{$data['quote_town_city']}', 
         '{$data['quote_country']}','{$data['quote_postcode']}','{$data['quote_primary_phoneno']}')"; 
     if (!mysql_query($query)) { 
      $isError = true; 
      echo mysql_error(); 
     } 
+0

Откуда берутся данные? Смотрит на меня, как будто он закодирован там. –

+0

Здесь вызывается htmlentities(). У вас есть код? Mysql не преобразовал бы это так. Если вы хотите хранить польские символы без кодировки и т. Д., Вам нужно проверить набор символов таблицы в mysql. –

+0

db is utf8 & utf8_general_ci –

ответ

-1

Воспользоваться html_encode() перед вставкой в ​​базу данных, после выбора из базы данных использования html_decode() данные.

+0

html_encode() save "ł" вместо "& #322;" в базе данных? –

+0

Да только не в том точном знаке. – Spikey21

0

Это то, что вы НЕ должны обрабатывать в php.
Вы вызываете функцию htmlentities() где-то, что абсолютно бесполезно.

Итак, просто избавитесь от этого вызова функции и не тронуте ваши данные.

Для фильтрации входных данных пользователя от инъекций XSS вы должны использовать функцию htmlspecialchars().

+0

Эй, я просто искал свой проект для «htmlentities()» и не получил никаких результатов, поэтому я его не использую. –

+0

Это довольно странно. попробуйте немного отладить. вы знаете, есть какой-то код между формой и базой данных. просто попробуйте распечатать свои данные в нескольких местах и ​​попытайтесь определить место, где оно было изменено. –

Смежные вопросы