接了一个老项目,用的数据库是sql server,php版本是5.6,平台是windows10这里讲一下本地服务器xampp的安装与配置。
首先官网下载老版本5.6xampp,安装过程不多赘述。
然后同样打开Config内的Apache(httpd-ssl.conf),将其中的Listen 443改成Listen 4433.至此XAMPP的Control Panel里的Apache可以正常打开。但是连接sql server2012的时候会发现出现了错误。(我这里使用了sqlsrv_connect来进行sql server的相关连接)。 连接sql server出现的错误提示.PNG
这里贴一下我使用的连接代码:
<?php
header("Content-Type:text/html;charset=gbk2312");
$serverName = "url,端口号"; //数据库的服务器名,注意中间是逗号
$connectionInfo = array("UID"=>"用户名","PWD"=>"密码","Database"=>"数据库名");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ){
echo "connect SUCCESS .\n";
}else{
echo "connect FAIL\n";
die("<script>alert('请检查网络连接');location.href='login.html';</script>");
}
?>
继续,出现这个问题的原因是由于没有安装相关的插件。需要到这个地址下去寻找:https://www.microsoft.com/en-us/download/details.aspx?id=20098
注意看一下下面的System Requirements里的内容。找好支持的版本,并且进行对应的下载。
下载好解压后是一大堆文件,但是只需要你对应的版本。我这边是php5.6版本,所以我只需要这里面的两个文件——php_pdo_sqlsrv_56_ts.dll
和php_sqlsrv_55_ts.dll
,这里ts和nts指的是线性安全的还是非线性安全的,可以新建一个文件test.php,输入
<?php
echo phpinfo();
?>
然后放到htdoc下。通过浏览器内输入localhost/test.php
来查看PHP具体信息。搜索关键字Zend Extension来看对应的是TS还是NTS。将这两个文件放到xampp目录下的php/ext目录下,然后还是打开XAMPP Control Panel那个最开始安装的,还是Apache的Config点开,下面有一个PHP(php.ini),打开后在文件的最后面加上:
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_56_ts.dll
[PHP_SQLSRV]
extension=php_sqlsrv_56_ts.dll
然后就可以成功连接了。
但是,在这个时候,还是会有错误提示,因为缺少了一个ODBC驱动。可以输出var_dump(sqlsrv_errors())
这个时候可以根据输出的错误信息里的ODBC Driver版本来进行相应的驱动的下载(版本需要对应,我自己需要下载ODBC Driver 11)这里我也给个下载的地址:http://go.microsoft.com/fwlink/?LinkId=163712,里面可以进行版本选择,然后下载。注意x86和x64版本区分即可。至此所有操作完成,可以进行sql server的连接了。
另外,php访问数据库我一直很喜欢用SESSION,这里介绍一下如何开启SESSION,需要将php.ini文件内的session.auto_start=0
改成session.auto_start=1
,这样就能默认开启,同时注释掉session.save_path="\xampp\tmp"
,(防止跳转后无法读取SESSION)。
网友评论