码迷,mamicode.com
首页 > 数据库 > 详细

thinkphp5访问sql2000数据库

时间:2017-09-18 12:17:30      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:两种   use   nbsp   下载   print   could not   html   mss   ace   

大家都知道php跟mysql是绝配,但是因为有时候工作需要,要求php访问操作sql2000,怎么办呢?

一般来说有两种方式:

1. sqlsrv驱动方式

2. odbc方式

 

sqlsrv驱动方式,因为微软公司原因,不提供sql2000的访问驱动,只提供了sql2005以上的驱动,所以如果你的数据库是2005以上版本,特别是sql2008r2,到微软官方可以下载到sql2008 for php的驱动,网上有很多文章介绍,我的博客里有篇文章 http://www.cnblogs.com/skysowe/p/5749022.html 专门讨论这个情况;

 

我工作环境是:php 5.5n(phpstudy) + nginx  + tp5.10 + sql2000 + win7(64位)系统

网上搜到了这篇文章http://www.cnblogs.com/huangtailang/p/6485528.html,测试了一下,文章里的方法是可用的:

 

(一)使用odbc方式在控制器里工作:

<?php
namespace app\index\controller;

use PDO;        //for pdo odbc sql2000 or sql2008r2

class Index
{
    public function index()
    {
        header(‘Content-type:text/html; charset=utf-8‘);


        //////////////////////////////////////////////////////
        //test sql2000&sql2008r2 pdo
        //////////////////////////////////////////////////////

        $dbname=‘master‘;
        $username=‘sa‘;
        $password=‘yoooko‘;

        //--------------------------------------------------------------ok
        //sql2000
        $mssqldriver = ‘{SQL Server}‘;
        $hostname=‘127.0.0.1\sql2000,1434‘;
        //使用ODBC方式连接
        $dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password);
        
        //--------------------------------------------------------------
        

        //--------------------------------------------------------------ok
        //sql2008r2
        //$mssqldriver = ‘{SQ Server Native Client 11.0}‘;
        //$mssqldriver = ‘{ODBC Driver 11 for SQL Server}‘;
        //$hostname=‘127.0.0.1\sql2008r2,14333‘;
        //没有安装sqlsrv驱动时无法使用,error:could not find driver
        //$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);
        //--------------------------------------------------------------

        $sql = "SELECT * FROM cs";
        foreach ($dbDB->query($sql) as $row) {
            var_dump($row);
        }


    }



}

 

(二)使用database.php + 控制器的方式工作

在database.php里配置:

return [

    // 数据库类型
    ‘type‘            => ‘Sqlsrv‘, //必须输入<br>

    // 用户名
    ‘username‘        => ‘sa‘,

    // 密码
    ‘password‘        => ‘yoooko‘,

    // 连接dsn,驱动、服务器地址和端口、数据库名称
    ‘dsn‘             => ‘odbc:Driver={SQL Server};Server=127.0.0.1\sql2000,1434;Database=master‘,

];

 

在Index.php控制器里:

<?php
namespace app\index\controller;

use think\Db;

class Index
{
    public function index()
    {
        header(‘Content-type:text/html; charset=utf-8‘);
                
        //$user = Db::table(‘cs‘)->select();            //不行,有row_number()错误
        $user = Db::query("select * from cs");            //必须使用原生sql方式,正确

        echo ‘<pre>‘;
        print_r($user);
        echo ‘</pre>‘;
        }
}

 

thinkphp5访问sql2000数据库

标签:两种   use   nbsp   下载   print   could not   html   mss   ace   

原文地址:http://www.cnblogs.com/skysowe/p/7542294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!