php如何连接Sql Server数据库

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数据库)