最近要搞個sqlserver的課程設計,媽蛋真是蛋疼,主要的是c,c++,java都被老師上壞了,只會些hellWord程序並無什麼用!php
還好自學了php這個世上最好的語言(有沒有?);本覺得用php與sqlserver通信會很容易,沒想到搞得這麼蛋疼。java
這裏不得不吐槽sqlserverz這個世上最(zha)的數據庫,裝個完整版要一兩個小時,卸載的話也要等一兩個小時,更狠的是c++
強行佔用c盤好幾個GB 真是個奇葩的數據庫。。。。。。sql
好了不說了,仍是乖乖作課程設計吧。數據庫
php鏈接sqlserverapache
這裏須要下載驅動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).aspxtcp
不過我鬱悶的是管網給的驅動我都試遍了都成功裝上(我用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