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 相关文章推荐
用PHP读取IMAP邮件
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 PHP
Laravel框架路由管理简单示例
May 07 PHP
PHP goto语句用法实例
Aug 06 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 PHP
PHP mkdir创建文件夹实现方法解析
Nov 13 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
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
php上传文件问题汇总
2015/01/30 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
python Django框架实现自定义表单提交
2016/03/25 Python
windows下安装Python和pip终极图文教程
2017/03/05 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
Python装饰器知识点补充
2018/05/28 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
招商业务员岗位职责
2013/12/16 职场文书
民族团结先进个人材料
2014/02/05 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
社区服务活动报告
2015/02/05 职场文书
村党组织公开承诺书
2015/04/30 职场文书
建党伟业观后感
2015/06/01 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
SQL Server使用导出向导功能
2022/04/08 SQL Server