не допускать «&» для & amp; кодировка при сохранении в базу данных

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 ". Я хочу остановить это преобразование. Я, что бы сохранить его как "Новый и старый",

Вот код сохранения данных -

$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 & old" правильно, не будет никакой кодировки в POST.

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

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

пожалуйста, помогите мне остановить эту кодировку "&" до &

благодаря

Теги:
sql-server-2008
iis
pdo
sqlsrv

3 ответа

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'])."',

Благодарю.

  • 0
    идеальное решение
0

Вы должны использовать UTF-8 во всех страницах, php файлах и базе данных сортировки. Также проверьте это: qaru.site/questions/103553/...

0

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

  • 0
    пожалуйста, прочитайте вопрос, брат ... Я использую SQL Server 2008 и я установил $con->setAttribute(\PDO::SQLSRV_ATTR_ENCODING,\PDO::SQLSRV_ENCODING_UTF8); и моя мета информация <meta charset="utf-8"> , которая мне не нужна ... Мне нужно сохранить в db без кодирования в &amp;
  • 0
    Действительно, я прочитал вопрос, но приведенная информация (например, кодировка) в нем не приводится. Вот почему я думал, что ваше сопоставление может быть неправильным

Ещё вопросы

Сообщество Overcoder
Наверх
Меню