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经典的给图片加水印程序
Dec 06 PHP
PHP4中session登录页面的应用
Jul 25 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
php 处理上百万条的数据库如何提高处理查询速度
Feb 08 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
详解PHP发送邮件知识点
May 06 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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用户指南-cookies部分
2006/10/09 PHP
mysql中存储过程、函数的一些问题
2007/02/14 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
php命令行写shell实例详解
2018/07/19 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python的另外几种语言实现
2015/01/29 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
Python: 传递列表副本方式
2019/12/19 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
事业单位鉴定材料
2014/05/25 职场文书
预备党员入党感言
2015/08/01 职场文书