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 反向排序和随机排序代码
Jun 30 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
php分页函数示例代码分享
Feb 24 PHP
php数组中包含中文的排序方法
Jun 03 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
php类的扩展和继承用法实例
Jun 20 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
yii2.0框架场景的简单使用示例
Jan 25 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
mysql5写入和读出乱码解决
2006/11/25 PHP
PHP使用数组实现队列
2012/02/05 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
javascript算法学习(直接插入排序)
2011/04/12 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
js实现日历
2020/11/07 Javascript
Python 获取div标签中的文字实例
2018/12/20 Python
python抓取多种类型的页面方法实例
2019/11/20 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
全球在线商店:BerryLook
2019/04/14 全球购物
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
C#笔试题集合
2013/06/21 面试题
介绍一下XMLHttpRequest对象
2012/02/12 面试题
电气自动化自荐信
2013/10/10 职场文书
小学教师岗位职责
2013/11/25 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python