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类
Nov 27 PHP
php不用正则采集速度探究总结
Mar 24 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
PHP框架Laravel的小技巧两则
Feb 10 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
php数值转换时间及时间转换数值用法示例
May 18 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
PHP与以太坊交互详解
Aug 24 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
utf8的编码算法 转载
2006/12/27 Javascript
IE6下JS动态设置图片src地址问题
2010/01/08 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
python print出共轭复数的方法详解
2019/06/25 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
pycharm永久激活超详细教程
2020/10/29 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
园林技术个人的自我评价
2014/01/08 职场文书
小学班主任自我评价
2015/03/11 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电