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 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
php提交post数组参数实例分析
Dec 17 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
php+ajax登录跳转登录实现思路
Jul 31 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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删除HTMl标签的三种解决方法
2013/06/30 PHP
php实现插入排序
2015/03/29 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
jQuery的学习步骤
2011/02/23 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
vue-router传参用法详解
2019/01/19 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
python数据抓取3种方法总结
2021/02/07 Python
十八大报告观后感
2014/01/28 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
质量标语大全
2014/06/12 职场文书
婚庆公司计划书
2014/09/15 职场文书
学习党章的体会
2014/11/07 职场文书
自我检讨报告
2015/01/28 职场文书
春风化雨观后感
2015/06/11 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书