php adodb连接mssql解决乱码问题


Posted in PHP onJune 12, 2009

周海汉/文
ADO可以用 new COM("ADODB.Connection", NULL, CP_UTF8)//65001 这样的语句来实现正确转换。但ADO对php的支持缺乏文档。而有个开源的adodb,文档较为丰富。
其中对不同数据库驱动,设置UTF-8的方法还不一样,如下:

For all drivers 
'persist', 'persistent', 'debug', 'fetchmode', 'new' 
Interbase/Firebird 
'dialect','charset','buffers','role' 
M'soft ADO 
'charpage' 
MySQL 
'clientflags' 
MySQLi 
'port', 'socket', 'clientflags' 
Oci8 
'nls_date_format','charset' 
For all drivers 
'persist', 'persistent', 'debug', 'fetchmode', 'new' 
Interbase/Firebird 
'dialect','charset','buffers','role' 
M'soft ADO 
'charpage' 
MySQL 
'clientflags' 
MySQLi 
'port', 'socket', 'clientflags' 
Oci8 
'nls_date_format','charset'

其中,Ado可以使用charPage这个属性来设置uft-8,类似new COM的方式。但发现当将AdoNewConnection($dbdriver)的$dbdriver设为'ado'或'ado_mssql'时,其传进去的database被替换为provider。那database的名字如何设置呢?一直没找到办法。
$dbdriver='ado://sa:cvttdev@172.16.22.40/sqloledb?charpage=65001';
其格式是'driver://user:passwd@host/database?options[=value]
但没解决设置数据库名字的地方。
痛苦了很久,只能找到如下的办法解决:
<html> 
<head> 
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 
</head> 
<body> 
<?php 
$dbdriver='ado_mssql'; 
$server='192.168.22.40'; 
$user='sa'; 
$password='passwd'; 
$DATABASE='sugarcrm_db'; 
$database='sqloledb'; 
//$dbdriver='ado://sa:cvttdev@172.16.22.40/sqloledb?charpage=65001'; 
$myDSN="PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER={172.16.22.40};DATABASE=sugarcrm_db;UID=sa;PWD=cvttdev;"; 
include('adodb5/adodb.inc.php'); 
$db = ADONewConnection($dbdriver); # eg 'mysql' or 'postgres' 
$db->debug = true; 
$db->charPage =65001; 
//$db->Connect($server, $user, $password, $database); 
$db->Connect($myDSN); 
//error:mssql server not support codes below 
//$db->Execute("set names 'utf8'"); 
echo "before query"; 
$rs = $db->Execute('select * from accounts'); 
print "<pre>"; 
print_r($rs->GetRows()); 
print "</pre>"; 
?> 
</body> 
</html>
PHP 相关文章推荐
WINXP下apache+php4+mysql
Nov 25 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
浅谈php扩展imagick
Jun 02 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
May 06 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 #PHP
php MsSql server时遇到的中文编码问题
Jun 11 #PHP
php 分页类 扩展代码
Jun 11 #PHP
PHP 输出简单动态WAP页面
Jun 09 #PHP
Windows PHP5和Apache的安装与配置
Jun 08 #PHP
phpMyAdmin 安装配置方法和问题解决
Jun 08 #PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
Jun 08 #PHP
You might like
基于Zend的Captcha机制的应用
2013/05/02 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
2016/09/27 Javascript
vue.js表格分页示例
2016/10/18 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
Vue中computed及watch区别实例解析
2020/08/01 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
解决uWSGI的编码问题详解
2017/03/24 Python
Python中标准模块importlib详解
2017/04/16 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
python清除函数占用的内存方法
2018/06/25 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
介绍Ibatis的核心类
2013/11/18 面试题
优秀大学生的自我评价
2014/01/16 职场文书
校本教研活动总结
2014/07/01 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
2015年度物流工作总结
2015/04/30 职场文书
《叶问2》观后感
2015/06/15 职场文书
房产遗嘱范本
2015/08/06 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android