php,java鏈接sqlserver數據庫

最近要搞個sqlserver的課程設計,媽蛋真是蛋疼,主要的是c,c++,java都被老師上壞了,只會些hellWord程序並無什麼用!php

還好自學了php這個世上最好的語言(有沒有?);本覺得用php與sqlserver通信會很容易,沒想到搞得這麼蛋疼。java

這裏不得不吐槽sqlserverz這個世上最(zha)的數據庫,裝個完整版要一兩個小時,卸載的話也要等一兩個小時,更狠的是c++

強行佔用c盤好幾個GB 真是個奇葩的數據庫。。。。。。sql


好了不說了,仍是乖乖作課程設計吧。數據庫

  1. 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

相關文章
相關標籤/搜索