最近要搞个sqlserver的课程设计,妈蛋真是蛋疼,主要的是c,c++,java都被老师上坏了,只会些hellWord程序并没有什么用!
还好自学了php这个世上最好的语言(有没有?);本以为用php与sqlserver通讯会很容易,没想到搞得这么蛋疼。
这里不得不吐槽sqlserverz这个世上最(zha)的数据库,装个完整版要一两个小时,卸载的话也要等一两个小时,更狠的是
强行占用c盘好几个GB 真是个奇葩的数据库。。。。。。
好了不说了,还是乖乖做课程设计吧。
php连接sqlserver
这里需要下载驱动dll文件,下面是微软官方给的驱动
//驱动下载 https://www.microsoft.com/en-us/download/details.aspx?id=20098
//驱动介绍 https://msdn.microsoft.com/en-us/library/cc296170.aspx
//sqlsrv API使用介绍: https://msdn.microsoft.com/zh-cn/library/cc296152(v=sql.90).aspx
不过我郁闷的是管网给的驱动我都试遍了都成功装上(我用php 5.6.7 线程安全版 64bit ,非集成软件)
后来百度了n遍后才找到了一个外国佬弄的,终于装上了(驱动包可以在下文连接下载)
php驱动安装:
下载驱动,吧适合的php版本的sqlserverq驱动dll文件放到php安装目录下的ext文件夹下
然后是在php.ini文件里增加配置
extension=php_pdo_sqlsrv_56_ts.dll
extension=php_sqlsrv_56_ts.dll
重启apache
在服务器根目录建立phpinfo.php文件,文件内容
<?php phpinfo();
保存文件
在浏览器地址栏输入:localhost/phpino.php浏览
如果出现如图情况就说明装上了驱动了:
然后就是建立一个demo.php去连接sqlserver
//1.连接sqlserver 过程操作 需要php_sqlsrv_**_ts.dll(线程安全) or php_sqlsrv_**_nts.dll(非线程安全) /*$serverName = "localhost"; $uid ="sa"; $pwd ="密码"; $connectionInfo = array( "UID"=>$uid, "PWD"=>$pwd, "Database"=>"数据库名");//可以为空,如果不为空 则数据库一定要是存在的 $conn = sqlsrv_connect( $serverName,$connectionInfo);//sqlsrv_connect是新出的连接函数 支持ssqlserver2005以上版本, if( $conn === false ) { echo "连接失败!</br>"; print_r( sqlsrv_errors());//返回数据编码GBK UTF-8乱码 }else{ echo "<span style='color:#08AD2C'>连接成功</span><br>"; } sqlsrv_close( $conn);//关闭数据库 exit;*/ //------------------------------------------------------------------------------ //2.连接sqlserver 面向对象操作 //建立sql连接 pdo 需要php_pdo_sqlsrv_**_ts.dll(线程安全) or php_pdo_sqlsrv_**_nts.dll(非线程安全)驱动 try { $DSN = "sqlsrv:Server=localhost,1433;Database=phptestdb"; $conn = new PDO($DSN,"sa","密码"); } catch (PDOException $e) { echo '连接数据库出错:' . $e->getMessage(); } if($conn) echo "连接成功";
然后执行这个demo.php
如果没什么意外的话,是可以连接成功的。
如果不成功的话自己看提示再做相应的解决吧,
不过在这之前你得先装有sqlserver数据库在电脑上,并且sqlserver开启了tcp/ip ,
sqlserver的默认端口是1433如果你不知道他通不通可以用telnet这个工具看看
在cmd里输入命令 :telnet localhost 1433
如果不通的话会显示连接失败的,不通就说明你sqlserver的配置问题了
我是这样配置的(sqlserver 2008 R2):
不知道是怎么会回事,我之前装的是sqlserver2005 R2完整版 ,硬是连接都连不上,
后来果断装了sqlserver2008 R2(这个是很蛋疼的,主要的是卸载和安装很麻烦)
php既然连上了!但是 SQL server manager studio既然登不上了!一阵折腾配置后还是连接不上,
哎,折腾了这么久既然这样子了,妈蛋,sqlserver真是一个奇葩的数据库!
最后果断放弃SQL server manager studio这个工具,自己写个php工具去操作数据库,可以 定义 增 删 改 查
如果你也是折腾了一两天也没结果,那我只能说呵呵了,我现在也接近崩溃的边缘了,发誓课程设计做完后不再用这个渣渣数据库了
2.java连接sqlsesrver
因为中途用php连接sqlserver无望,用了java连接了sqlserver,顺便也说下过程
java连接sqlserver也是要有驱动程序的,不过java用的驱动是jar文件(相应的驱动程序和例子在文章末尾有下载)
需要在项目里增加lib
demo代码
package sqltest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class sqltest { public static void main(String[] args) { // TODO Auto-generated method stub Connection c = null; Statement stmt = null; try{ //注册驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //创建数据库连接(数据库一定要是存在 可以为空) c = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=数据库名","sa","密码"); } catch( Exception e){ System.err.println( e.getClass().getName() + ": " + e.getMessage() ); System.exit(0); } System.out.println("Opened database successfully"); } }
如果连接成功或出现:
Opened database successfully
应为我的java学得太渣,这里就不多说了,如果你要用java去操作sqlserver,可以自己去查看相应API的用法
我试过的java,php驱动,和相应的例子可以从这里下载:http://pan.baidu.com/s/1dDo4P13#path=%252F