美文网首页
php如何连接Sql Server数据库

php如何连接Sql Server数据库

作者: 小可爱2019 | 来源:发表于2019-02-11 06:01 被阅读0次

    1 下载SQL Server驱动

    Microsoft Drivers for PHP for SQL Server

    2 把两个ts.dll放到php/ext里

    比如我的php版本是 php7.2.10,64位系统,就把php_pdo_sqlsrv_72_ts_x64.dll 和 php_sqlsrv_72_ts_x64.dll 放进去ext里,剩下的文件删掉即可


    例子

    3 安装ODBC Driver for SQL Server (msodbcsql.msi)

    如何已经安装过Sql Server数据库且没有报错可以不用安装

    4 在php.ini找个位置添加两行代码(dll文件的前缀即可),不用加后缀名

    extension=php_pdo_sqlsrv_72_ts_64
    extension=php_sqlsrv_72_ts_64

    4 测试下是否可以连接

    public function index() {
            //echo phpinfo();
            $serverName = "10.10.0."; //数据库服务器地址
            $uid = "root";     //数据库用户名
            $pwd = "123"; //数据库密码
            $connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"test");
            $conn = sqlsrv_connect($serverName, $connectionInfo);
            if( $conn == false){
                echo "连接失败!";
                var_dump(sqlsrv_errors());
                exit;
            }else{
                echo "链接成功";
            }
    }
    
    Tips:连接到Sql Server后, 如果之前你的查询数据库的语句是针对Mysql的,一般也是需要更改的,具体参考 SQLSRV Functions

    另外,在项目中发现Mysql和SQL server通过php取数据后的一点异同
    1. 本来为Int的数据,在Mysql里被php取出后传到js里后是Char类型,而SQLserver仍然是int。

    mysql(int) -> php -> js(char)
    sqlserver(int) -> php -> js(int)

    1. 如果有把date类型转换为时间戳的需求,在mysql里,可以通过查询语句直接更改(比如UNIX_TIMESTAMP(Starttime))然后给php。 而在SQLserver里通过query取出来还是date,需要传到php后再进行转换(比如((strtotime($row['Starttime']) )

    mysql(date) -> query(convert to timesteamp) -> php( timesteamp )
    sqlserver (date) -> query(date) -> php (convert to timesteamp)

    相关文章

      网友评论

          本文标题:php如何连接Sql Server数据库

          本文链接:https://www.haomeiwen.com/subject/tzrwsqtx.html