V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kslr
V2EX  ›  问与答

PHP5.6 如何连接到上古 MSSQL 2000 呢?

  •  1
     
  •   kslr · 2016-09-02 16:13:46 +08:00 · 2610 次点击
    这是一个创建于 2804 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在是 5.6 经历了重重困难,折腾了 The SQL Server Driver for PHP 和 Microsoft SQL Server 2008 R2 Native Client 终于成功后却发现已经不支持 MSSQL 2000 版本了。

    我使用的是 Laravel(5.1~5.3),不知道该如何解决了,大家有好的办法解决吗?

    18 条回复    2016-09-02 21:32:43 +08:00
    FifiLyu
        1
    FifiLyu  
       2016-09-02 16:20:58 +08:00
    用 odbc ,你找找资料看看吧。
    几年前用 odbc+php5.2.17 连接了 2000/2005/2008 ,做测试。
    kslr
        2
    kslr  
    OP
       2016-09-02 16:22:25 +08:00
    @FifiLyu 如果最后真没有办法只能用 PHP5.2 ,想想就真惨,估计已经找不到可以用的了。
    lslqtz
        3
    lslqtz  
       2016-09-02 16:44:18 +08:00 via iPhone
    @kslr 我一般会开个 php5.2 在另一个端口 然后写个接口执行 sql...
    简单粗暴
    kslr
        4
    kslr  
    OP
       2016-09-02 16:46:25 +08:00
    @lslqtz 我刚刚发现 codeigniter3 竟然还支持着 php5.2.4 ,主要执行的不是一条两条还要进行改装。
    zi
        5
    zi  
       2016-09-02 16:58:14 +08:00   ❤️ 6
    php5.6 连不上,你放弃吧。。
    因为。。 php5.6 需要 sqlsrv 驱动, sqlsrv 3.2 支持 php5.6 ,但是 sqlsrv3.2 需要 ODBC driver 11.0 ,然而 ODBC driver 11.0 不支持 sql server 2000 。。。
    ODBC driver 8 才支持 sql server 2000 ,然而只有 sqlsrv 2.0 才能连接 ODBC driver 8 ,然后 sqlsrv 2.0 只支持 php5.2 、 php5.3 。。
    你说你认了,数据为大,降级 PHP 还不行嘛。。然而 apache 只支持 sqlsrv 3.0 以上。。只有 IIS 才兼容 sqlsrv 2.0 。。其他 web 服务器未知。。
    别问我怎么知道。。 昨天才被这个折磨了一天。。
    lslqtz
        6
    lslqtz  
       2016-09-02 16:59:18 +08:00 via iPhone
    @zi
    @kslr
    还是迁移来的现实点 你说是吧
    sheep3
        7
    sheep3  
       2016-09-02 17:05:16 +08:00 via Android
    @zi 可怕
    kslr
        8
    kslr  
    OP
       2016-09-02 17:06:28 +08:00
    @zi
    @lslqtz

    我打算用 PHP5.2 的 MSSQL.DLL 扩展尝试一下的,因为这个数据至关重要,我要是升级搞丢(第一次接触 MicroSoft Mssql ),除了破产无路可走。
    lslqtz
        9
    lslqtz  
       2016-09-02 17:06:50 +08:00 via iPhone
    @kslr 先做个全盘备份
    kslr
        10
    kslr  
    OP
       2016-09-02 17:11:16 +08:00
    @lslqtz 那也要停机啊,医院不能停机
    mcfog
        11
    mcfog  
       2016-09-02 17:19:16 +08:00   ❤️ 2
    中转啊,一个古董 php
    ```
    <?php
    echo var_export(mssql_fetch_all(mssql_query($_POST['query'])););
    ```
    跑在本地不要开外网

    然后你的现代 php 跑 laravel 走古董 php 中转
    FifiLyu
        12
    FifiLyu  
       2016-09-02 17:20:39 +08:00
    @zi 233
    lslqtz
        13
    lslqtz  
       2016-09-02 17:51:33 +08:00
    @kslr 医院。。我气的蛋疼啊。。
    晚上停 然后转移维护
    kslr
        14
    kslr  
    OP
       2016-09-02 17:59:10 +08:00
    @lslqtz 我还是更希望低成本解决,因为这件事情可以放弃掉,为此投入精力风险都太大了。
    楼上的中转就是个好办法,虽然处理上有点麻烦,等我测试下吧
    qile1
        15
    qile1  
       2016-09-02 20:58:13 +08:00 via Android
    你把数据库备份出来,然后直接 sql2008 r2

    或者 sql2012 还原试试原来程序应该可以用
    hainuo
        16
    hainuo  
       2016-09-02 21:07:10 +08:00   ❤️ 1
    楼主有两个思路 一个是降级 php 到 5.2 另一个是升级 mssql 到 2008 及以上
    https://blog.hainuo.info/blog/php-ms-sqlserver2008-native-client-38.html 这是我给政府部门水文局处理 mssql 升级后的一些记录,希望能够帮到你
    mahone3297
        17
    mahone3297  
       2016-09-02 21:31:58 +08:00
    我最近升级 php7 ,也要连 mssql
    我看到 php7 的 migration 手册上写
    https://secure.php.net/manual/en/intro.mssql.php
    我用的是库
    https://packagist.org/packages/realestateconz/mssql-bundle

    不知道是否能成功,先试试看再说。
    mahone3297
        18
    mahone3297  
       2016-09-02 21:32:43 +08:00
    @mcfog 这个思路确实不错。真不行,我也只能这样。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3574 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:17 · PVG 19:17 · LAX 04:17 · JFK 07:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.