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中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
解决phpmyadmin 乱码,支持gb2312和utf-8
Nov 20 PHP
php 删除记录实现代码
Mar 12 PHP
php URL跳转代码 减少外链
Jun 25 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
PHP二维数组去重算法
Dec 17 PHP
php数据序列化测试实例详解
Aug 12 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
laravel migrate初学常见错误的解决方法
Oct 11 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 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
PHP 数组教程 定义数组
2009/10/23 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
javascript实现计算器功能
2020/03/30 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
Python日期操作学习笔记
2008/10/07 Python
Python中标准模块importlib详解
2017/04/16 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
mac使用python识别图形验证码功能
2020/01/10 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
轻松制作精彩视频:Animoto
2018/09/19 全球购物
酒店总经理工作职责
2013/12/13 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
2014年文员工作总结
2014/11/18 职场文书
员工2014年度工作总结
2014/12/09 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL