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生成自己的LOG文件
Oct 09 PHP
用PHP 4.2书写安全的脚本
Oct 09 PHP
PHP中的日期处理方法集锦
Jan 02 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
destoon之一键登录设置
Jun 21 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
Apr 15 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
Mar 28 PHP
如何修改yii2.0自带的user表为其它的表
Aug 01 PHP
php xhprof使用实例详解
Apr 15 PHP
Laravel配置全局公共函数的方法步骤
May 09 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
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
js数组中如何随机取出一个值
2014/06/13 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
微信小程序实现上传图片功能
2018/05/28 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python实现dict版图遍历示例
2014/02/19 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
Python中按键来获取指定的值
2019/03/02 Python
Django对models里的objects的使用详解
2019/08/17 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
实习教师个人的自我评价
2013/11/08 职场文书
周鸿祎:教你写创业计划书
2013/12/30 职场文书
xxx同志考察材料
2014/02/07 职场文书
火锅店的活动方案
2014/08/15 职场文书
入伍通知书
2015/04/23 职场文书
公司催款律师函
2015/05/27 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
box-shadow单边阴影的实现
2023/05/21 HTML / CSS