今天尝试在 Wamp 环境下访问 MS SQL 数据库,有以下心得。使用 PHP 5.3 + pdo_odbc + Yii 1.1 框架,以下两个代码段可以成功。

1、直接使用 PDO 方式,可以获取数据。

 $sql = "SELECT TOP 10 [NAME],[STCD],[TM],[PA] FROM AT_PA";
$cnx = new PDO("odbc:Driver={SQL Server};Server=10.5.1.47;Database=mydb;",'username','pass');
var_dump($cnx);
$rs = $cnx->query($sql);
var_dump($rs);
foreach ($rs as $b) {
var_dump($b);
}

2、如果在配置文件中对 db 属性进行配置,可以使用 CDbCommand 类查询数据。

//配置代码
return array('components' => array(
'db' =>
array (
'driverName'=>'mssql',
'connectionString' => 'odbc:Driver={SQL Server};Server=127.0.0.1;Database=mydatabase;',
'username' => 'username',
'password' => 'pass',
),
)); //查询代码
$sql = "SELECT TOP 10 [NAME],[STCD],[TM],[PA] FROM AT_PA";
$rs = Yii::app()->db->createCommand($sql)->queryAll();
var_dump($rs);
foreach ($rs as $b) {
var_dump($b);
}

3、最激动人心的一步,使用 CActiveRecord,失败了。

如果查询所有表的名称,

$rs = Yii::app()->dbHuaiWater->schema->tableNames;

可以得到所有的数据表的名称。但是 Gii 无法自动生成模型,总是提示指定的表不存在。即使人工编辑模型子类也无法执行数据查询。

使用 PHP 框架 Yii 访问 MS SQL 的尝试的更多相关文章

  1. Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)

    Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...

  2. 使用unidac 在linux 上无驱动直接访问MS SQL SERVER

    随着delphi 10.2 开始了对Linux 的重新支持.devart 也迅速的发布了unidac 7.0, 最大的特性就是支持linux和MongoDB. 并有了其他更新: In this rel ...

  3. CentOS 65 java 访问 MS SQL

    #install unixODBC sudo yum install unixODBC unixODBC-devel -y #install freetds #1st download freetds ...

  4. [MS SQL Server]SQL Server如何开启远程访问

    在日常工作中,经常需要连接到远程的MS SQL Server数据库中.当然也经常会出现下面的连接错误. 解决方法: 1. 设置数据库允许远程连接,数据库实例名-->右键--->属性---C ...

  5. MS SQL 多连接数时修改数据库名称

    在MS SQL中,如果你想修改某一个数据库的名称,你可以通过下面几种方法实现. 方法一:使用SP_RENAMEDB系统存储过程实现. 语法: sp_renamedb [ @dbname = ] 'ol ...

  6. MS SQL SERVER 中的系统表

    MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.   2 syscomments 包含每 ...

  7. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  8. YII访问数据库

    YII访问数据库 CDbConnection: 一个抽象数据库连接 CDbCommand: SQL statement CDbDataReader: 匹配结果集的一行记录 CDbTransaction ...

  9. FoxOne---一个快速高效的BS框架--数据访问(Dao)

    FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...

随机推荐

  1. 机器学习-数据可视化神器matplotlib学习之路(二)

    之前学习了matplotlib的一些基本画图方法(查看上一节),这次主要是学习在图中加一些文字和其其它有趣的东西. 先来个最简单的图 from matplotlib import pyplot as ...

  2. python 打包成tar包

    def make_targz(output_filename, source_dir): with tarfile.open(output_filename, "w:gz") as ...

  3. CMake Error: not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH

    一.第一种解决方法 cd /usr/share/ ,cmake tab补全,可以找到两个版本的cmake(cmake2.8和cmake3.5) 把/usr/share/cmake2.8/Modules ...

  4. JavaScript 基础知识入门

    ​ js3种弹出框 alert消息对话框 var mychar=I love JavaScript;alert(mychar); confirm消息对话框 返回值:bool var mymessage ...

  5. Cglib方法实现动态代理

    除了使用JDK方式产生动态代理外,Java还给我们提供了另外一种产生动态代理的方法,那就是使用cglib. cglib是这样实现动态代理的: · ①.针对类来实现代理 · ②对指定目标类产生一个子类 ...

  6. 在线客服 分享 qq 一键加好友 一键入群

    1.在线客服 <a href="tencent://message/?uin=qqnum&Site=&menu=yes">qq客服</a>  ...

  7. 二叉树最大宽度 Maximum Width of Binary Tree

    2018-07-27 15:55:13 问题描述: 问题求解: 题目中说明了最后的宽度计算其实是按照满二叉树来进行计算的,也就是说如果我们能够得到每层最左边的节点编号和最右边的节点编号,那么本题就可以 ...

  8. Java 常用对象-String类

    2017-11-02 20:02:06 String:代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能 ...

  9. [Java学习] Java包装类、拆箱和装箱详解

    虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性.没有方法可调用. 沿用它们只是为了迎合人类根深蒂固的习惯, ...

  10. .split(",", -1);和.split(",")的区别

    .split(",", -1);和.split(",")的区别在于://eg:String a="河南省,,金水区".//a.split(& ...