php连接sql server 2012注意事项
嗨呀好久没写技术贴了。。。魔兽帐号解封以后,陷入了无限爆肝模式,每天都把所有能量任务做完,然后就没空研究技术了
咳咳,言归正传。事情起因是毕设的时候要求用php+sql server 2012做一个应用,我也很纳闷为啥好好的mysql不用非得用sql server。。。但是没办法,毕设的导师是大爷,所以只能硬着头把他锤了。但是网上的很多教程都是ctrl+v出来的,有非常多的漏洞,所以我就做完以后自己写一篇。。。
首先,你需要上微软的官网下载sql server(废话),以及一个php连接插件。根据网上的说法,php5.3以下自带一个php_mssql.dll,可以直接进行连接,当然我用的是5.4,不属于这个范畴,所以我就去下了一个。下载在微软官网就有:
https://www.microsoft.com/en-us/download/details.aspx?id=20098
点击红色的download按钮之后可以看到有SQLSRV30.EXE到40.EXE,还有linux版本的。当然我觉得会用说sql server的傻逼应用应该不可能在linux中,所以......
不管怎么说,你可以先随意下载一个,比如先下载30,然后运行后其实是一个自解压程序。解压后会出现php_sqlsrv_xxxxx.dll,注意xxxxx就是你的php版本号。不知道自己php版本的就用phpinfo()看,然后找一个匹配的用上。具体新方法:新建一个php,内容是
<?php phpinfo(); ?>
然后运行查看
注意红圈的位置,比如我的是5.4,TS,那我就用php_sqlsrv_54_ts.dll和php_pdo_sqlsrv_54_ts.dll
如果发现30.EXE里面没有你的,那就下31,在没有就下32.....
找到dll以后,复制到PHP目录的ext文件夹中,然后在php.ini里面加上
extension=php_pdo_sqlsrv_54_ts.dll extension=php_sqlsrv_54_ts.dll
当然要根据你的dll来定。。。。
加完以后restart一下php,然后刷新phpinfo页,看看是否安装成功
可以查找一下有没有这一块
有的话就OK了
然后再去sql server配置,打开SQL SERVER MANAGEMENT STUDIO,登录以后可以新建一个账户,也可以直接使用sa。注意sa默认的权限是不对的,需要把权限全部配置一下。
然后再打开SQL SERVER配置管理器,确认一下这三个玩意有没有启用
没启用的话就启用一下。。
再点开这个
打开属性,选IP地址选项卡,然后拖到最下面查看端口
如果没有端口就自己设置一个。。。有的话就看一下就行
这样的话我们的准备工作就完成了,然后我们可以愉快的写代码了
<?php try{ $dbName="sqlsrv:Server=127.0.0.1,25094;Database=dbname"; $dbUser="sa"; $dbPassword="password"; $db=new PDO($dbName, $dbUser, $dbPassword); $query="select p.paper_id,p.title,p.author_name,p.recommend_to_Ij,a.email,a.password from paper p LEFT JOIN author a ON p.submit_email=a.email WHERE p.author_name<>''"; $stmt=$db->query($query); while ($row=$stmt->fetch(PDO::FETCH_ASSOC)){ echo $de.$row['paper_id']."<br />"; } $stmt=null; }catch (PDOException $e){ echo "<div style='color:red'>".$e->getMessage()."</div>"; } ?>
当然,具体怎么写还是视自己的情况。。。这只是个范例