zoukankan      html  css  js  c++  java
  • thinkphp5访问sql2000数据库

    大家都知道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 appindexcontroller;
    
    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.1sql2000,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.1sql2008r2,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.1sql2000,1434;Database=master',
    
    ];

    在Index.php控制器里:

    <?php
    namespace appindexcontroller;
    
    use thinkDb;
    
    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>';
            }
    }
  • 相关阅读:
    图片延迟加载
    Python开发【第一篇】:初识Python
    JavsScript+dom
    Django学习系列18:使用迁移创建生产数据库
    Django学习系列17:在模板中渲染待办事项
    Django学习系列16:处理完POST请求后重定向
    Django学习系列15:把POST请求中的数据存入数据库
    Django学习系列14:第一个数据库迁移
    Django学习系列13:Django ORM和第一个模型
    Django学习系列12:把Python变量传入模板中渲染
  • 原文地址:https://www.cnblogs.com/skysowe/p/7542294.html
Copyright © 2011-2022 走看看