【问题标题】:prevent "&" to &. encoding when save to database防止“&”到&。保存到数据库时的编码
【发布时间】:2015-03-27 07:47:33
【问题描述】:

我使用 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'] 时,它会正确返回“新旧”,而不会在 POST 时发生任何编码。

数据库列数据类型是 varchar(265),我使用 PHP 5.3 的 IIS 服务器

我有两个系统在同一个数据库上运行,一个是 Access 系统,另一个是 PHP Web 应用程序。访问系统不适用于&

请帮我停止这种编码“&”到&

谢谢

【问题讨论】:

    标签: php sql-server-2008 iis pdo sqlsrv


    【解决方案1】:

    最后我找到了解决方案,为了停止将 & 保存为&,我们需要对 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'])."',

    谢谢。

    【讨论】:

    • 完美解决方案
    • 这让我免于浪费很多时间..谢谢
    【解决方案2】:

    您应该在所有页面、php 文件和排序数据库中使用 UTF-8。 还要检查这个: https://stackoverflow.com/a/11249695/1919749

    【讨论】:

      【解决方案3】:

      将 MYSQL 数据库中的排序规则更改为 UTF-8 以及 php 脚本中的编码

      【讨论】:

      • 请阅读问题兄弟...我使用 sql server 2008 并且我设置了 $con->setAttribute(\PDO::SQLSRV_ATTR_ENCODING,\PDO::SQLSRV_ENCODING_UTF8); 并且我的元信息是 <meta charset="utf-8"> 这些对我没有帮助...我需要保存在数据库中编码为&
      • 确实我已经阅读了这个问题,但是给定的信息(如编码)没有给出。这就是为什么我认为您的排序规则可能是错误的
      猜你喜欢
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 2021-11-29
      • 2016-04-28
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多