• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL server不支持utf8 php却用utf8的矛盾问题解决方法

    核心代码

    function convert2utf8($string)
      {
        return iconv("gbk","utf-8",$string);
      }
      function convert2gbk($string)
      {
        return iconv("utf-8","gbk",$string);
      }

    当插入数据,或修改数据的时候,把utf-8,转为gbk,存入数据库。

    当获取数据的时候,将数据转为utf-8。

    这个方法在底层的数据中设计,上层调用即可。

    ?php
    class dao_dao extends Zend_Db_Table {
    
      public function returnDb(){
        return $db = $this->getAdapter();
      }
    
      public function getData($table,$where = false, $order = 'id ASC', $pagesize = false, $offset = false, $count = false, $from = false, $join = false, $group = false) {
        $db = $this->getAdapter();
        $select = $db->select();
        
        if ($where  is_array($where)) {
          foreach ($where as $key => $val) {
            //print_r($where);
            if($val['type']==1){
              $select->where($key, $val['val']);
            }else{
              $select->orwhere($key, $val['val']);
            }
            
          } 
        }
    
        if (!$from)
          $from = '*';
        //echo $select."br/>";
        if ($pagesize) {
          $select->limit($pagesize, $offset);
        }
        //echo $select."br/>";
        if (is_array($order)) {
          foreach ($order as $value) {
            $select->order($value);
          }
        } else {
          $select->order($order);
        }
        //echo $select."br/>";
        $select->from($table, $count ? "COUNT(".$table.".id)" : $from);
        
        if (is_array($group)) {
          foreach ($group as $key => $val) {
            $select->group($val);
          }
    
          if ($count) {
            $result = $db->fetchAll($select);
            //echo $select."br/>";
            return $result;
          }
        } else {
          if ($count) {
            $result = $db->fetchOne($select);
            //echo $select."br/>";
            return $result;
          }
        }
        if (is_array($join)) {
          foreach ($join as $key => $val) {
            $select->join($key, $val[0], $val[1]);
          }
        }
    
        //echo $select."br/>";
    
        //echo $select;exit;
        
        $result = $db->fetchAll($select);
        foreach ($result as $key => $value) {
          foreach ($value as $key2 => $value2) {
            $result[$key][$key2] = $this->convert2utf8($value2);
          }
        }
        return $result;
      }
      
      
    
    
      /**
       * 向表中插入数据
       * array $adata 数据
       * string $table 表名
       * int $insterid 是否需要返回插入ID
       * @return true or false or int
       */
       // @bianding 2013.11.04 更改了pdo中mssql.php的lastInsertId()函数
       // @bianding 2013.11.04 经测试 mssql.php中的lastInsertId()函数中的SELECT两种方式都行
      function SaveData($adata, $table, $insterid = 0, $aLog = false) {
        $db =  $this->getAdapter();
        foreach ($adata as $key => $value) {
          $adata[$key] = $this->convert2gbk($value);
        }
        if ($db->insert($table, $adata)) {
          //var_dump($db->getProfiler());
          $insertedID = $db->lastInsertId();      
          if ($insterid) {
            return $insertedID;
          } else {
            return TRUE;
          }
        } else {
          return false;
        }
      }
    
      /**
       * 删除表中数据
       * 
       * @param string $table 表名
       * @param string $where 'id ='.$id 条件
       * @return true or false
       */
      function DelData($table, $where, $aLog = false) {
        $db =  $this->getAdapter();
        if ($db->delete($table, $where)) {
          return TRUE;
        } else {
          return FALSE;
        }
      }
    
      /**
       * 更新表中数据
       *
       * @param string $table
       * @param array $adata
       * @param string $where 'id ='.$id
       * @return true or false
       */
      function UpdateData($table, $adata, $cond, $aLog = false) {
        $db =  $this->getAdapter();
        foreach ($adata as $key => $value) {
          $adata[$key] = $this->convert2gbk($value);
        }
        if ($db->update($table, $adata, $cond)) {
          return TRUE;
        } else {
          return false;
        }
      }
    
    
      public function clearTable($table) {
        $db = $this->getAdapter();
        $result = $db->query('TRUNCATE TABLE ' . $table);
      }
    
      public function executeSql($strSql) {
        $db = $this->getAdapter();
        $result = $db->query($strSql);
      }
      
      function convert2utf8($string)
      {
        return iconv("gbk","utf-8",$string);
      }
      function convert2gbk($string)
      {
        return iconv("utf-8","gbk",$string);
      }
    }

    sqlserver 建库指定utf-8 修改库为utf-8编码

    CREATE DATABASE paas COLLATE Chinese_PRC_CI_AS
    GO
    ALTER DATABASE paas COLLATE Chinese_PRC_CI_AS
    GO

    让ASP和MS SQL SERVER支持UTF-8编码存储多国语言文字

    近日在ASP+MS SQL存储UTF-8编码内容的时候,出现乱码的情况,经过查询发现要使SQL SERVER支持UTF-8编码格式,必须做一些修改才可以。

    1、确保ASP页面是UTF-8编码的,并在ASP页面顶部声明中使用%@ LANGUAGE = VBScript CodePage = 65001%>进行编码声明

    2、输出的HTML页面中声明字符集:meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    3、在进行URL参数传递的时候,要使用Server.URLEncode()方法进行编码

    4、使用JS进行URL参数传递中文的时候,要使用escape进行编码

    5、在将UTF-8编码的内容存入SQL SERVER数据库中的时候,要存储的字段必须设置为NVARCHAR类型,SQL语句要在内容前加N表示,如insert into user (name) values (N´username´),除id意外的字段都需要加N。

    您可能感兴趣的文章:
    • Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL环境搭建教程
    • PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
    • PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
    • PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
    • PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
    • php连接MSsql server的五种方法总结
    • php连接微软MSSQL(sql server)完全攻略
    • windows server 2008/2012安装php iis7 mysql环境搭建教程
    • PHP连接SQL server数据库测试脚本运行实例
    上一篇:PHP swoole的process模块创建和使用子进程操作示例
    下一篇:yii框架创建与设置默认控制器并载入模板操作示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SQL server不支持utf8 php却用utf8的矛盾问题解决方法 SQL,server,不支持,utf8,php,