2015-03-27 3 views
0

Я использую SQL Server 2008 и у меня есть PDO соединениепредотвратить "&" до &. кодирование при сохранении в базе данных

$con = new \PDO("sqlsrv:Server={$config['server']};Database={$config['database']}", $config['username'], $config['password']); 
    $con->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 
    $con->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC); 

То, что я хочу, мне нужно сохранить имя каталога, содержащего «&» знак без преобразования в &

например - название каталога - "New & old"

При сохранении в базе данных он преобразуется в «New & old». Я хочу остановить это преобразование. Я, что, чтобы сохранить его как «Новый & старый»

Вот данные сберегательные код -

$stmt = $this->db->prepare("SET NOCOUNT ON DECLARE @return_value int 
     EXEC @return_value = [dbo].[sp_update_t_Rfile2_RF2_Path] 
     @RF2_RfileID_pk_ind = ?, @RF2_Path = ? 
     SELECT 'Return Value' = @return_value 
     "); 
     $return = null; 
    $stmt->bindParam(1,$fields['RF2_nd'],\PDO::PARAM_STR); 
    $stmt->bindParam(2,$fields['Path_New'],\PDO::PARAM_STR); 
    $stmt->execute(); 

Я призываю к этому коду с помощью запроса POST не какой-либо Ajax. Когда я печатаю эти $ fields ['Path_New'] перед этим кодом, он возвращает «New & старый», правильно не происходит никакой кодировки в POST.

База данных Тип данных столбца VARCHAR (265), и я использую сервер IIS для PHP 5.3

У меня есть две системы работают на одной базе данных одной является система доступа и другой является PHP веб-приложение. Система доступа не работает с &

пожалуйста, помогите мне, чтобы остановить эту кодировку «&» в &

Благодарности

ответ

0

Измените параметры сортировки в UTF-8 в базе данных MYSQL, а также кодирования в вашем PHP скрипт

+0

прочитайте вопрос bro ... Я использую sql server 2008, и я установил '$ conf> setAttribute (\ PDO :: SQLSRV_ATTR_ENCODING, \ PDO :: SQLSRV_ENCODING_UTF8);' и моя метаинформация '' meta charset = «utf-8»> 'те, которые мне не помогают ... Мне нужно сохранить в db без кодировки до' & ' – Sri

+0

Действительно, я прочитал вопрос, но данная информация (например, кодировка) не дает в ней. Вот почему я думал, что ваша сортировка может быть неправильной – manniL

0

Наконец я нашел решение для этого, чтобы остановить сохранение & как & нам нужно декодировать html-кодировку (UTF-8).

(PHP 4> = 4.3.0, PHP 5)

html_entity_decode - Преобразование всех HTML сущности в соответствующие символы

больше информации - http://php.net/manual/en/function.html-entity-decode.php

Теперь я могу сохранить & без преобразования в &

Мой обновленный код - @RK_Path = N'".\html_entity_decode($fields['txtRK_Path'])."',

Спасибо.