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 date()日期时间函数详解
May 16 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
PHP上传图片、删除图片简单实例
Nov 12 PHP
php微信开发之自定义菜单实现
Nov 18 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
PHP延迟静态绑定使用方法实例解析
Sep 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
编译问题
2006/10/09 PHP
十天学会php之第三天
2006/10/09 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
JS中 用户登录系统的解决办法
2013/04/15 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
Python中表示字符串的三种方法
2017/09/06 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
python实现堆排序的实例讲解
2020/02/21 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
python Tornado框架的使用示例
2020/10/19 Python
如何用python批量调整视频声音
2020/12/22 Python
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
电台编导求职信
2014/05/06 职场文书
签约仪式策划方案
2014/06/02 职场文书
欢迎领导检查标语
2014/06/27 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android