今天尝试在 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. C#学习笔记(二):变量、数据类型和运算符

    变量.数据类型       给变量赋值,如果想指定float,在数字后面加上F/f:如果想指定decimal,在数字后面加上m.   0-9:48-57 A-Z:65-90 a-z:97-122   ...

  2. 如何给域名配置https证书

    http和https的区别就是,后者在网络传输过程中会很安全,原因就是给http安装了SSL证书. SSL证书有免费的和收费的,收费的顾名思义就是保护的方面更多,更安全.收费的像单域名的一年有几百.几 ...

  3. UVa 10766 Organising the Organisation(矩阵树定理)

    https://vjudge.net/problem/UVA-10766 题意: 给出n, m, k.表示n个点,其中m条边不能直接连通,求生成树个数. 思路: 这也算个裸题,把可以连接的边连接起来, ...

  4. UVa 1625 颜色的长度

    https://vjudge.net/problem/UVA-1625 题意: 输入两个长度分别为n和m的颜色序列,要求按顺序合并成同一个序列,即每次可以把一个序列开头的颜色放到新序列的尾部.对于每个 ...

  5. HTTP协议中TCP的三次握手 and HTTPS

    https://www.cnblogs.com/zxh930508/p/5432700.html https://www.cnblogs.com/digdeep/p/4832885.html

  6. JObject 用法 、JProperty 用法、JArray 用法 Linq 转 Json

    1.使用LINQ to JSON前,需要引用Newtonsoft.Json的dll和using Newtonsoft.Json.Linq的命名空间.LINQ to JSON主要使用到JObject, ...

  7. python 将列表中的字符串转为数字

    本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...

  8. xss脚本注入后端的防护

    1.脚本注入最主要的是不要相信用户输入的任何数据,对数据进行转义 可以使用:org.springframework.web.util.HtmlUtils包中的 HtmlUtils.htmlEscape ...

  9. Win7下怎么设置让远程桌面连接记住密码下次登录不需再输入

    远程桌面连接功能想必大家都不会陌生吧,特别是使用VPS服务器的用户们经常会用到,为了服务器的安全每次都会把密码设置的很复制,但是这样也有一个麻烦,就是每次要桌面远程连接的时候都要输入这么复杂的密码,很 ...

  10. 《剑指offer》第四十题(最小的k个数)

    // 面试题40:最小的k个数 // 题目:输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7.3.8 // 这8个数字,则最小的4个数字是1.2.3.4. #include < ...