使用PHP訪問MSSQL SERVER資料庫小結

2021-04-24 04:50:27 字數 2615 閱讀 3987

phpchina 開源社群門戶

自學了兩天php,感覺不錯,昨晚突然頭腦發熱,準備給家裡的醫藥銷售軟體做個功能擴充套件。那個軟體買得舊了,做購貨計畫時,只能從庫存頁面一行一行的看(5000多行,眼都要看花),而且還不能對藥品名稱排序(它是按基本資訊錄入的時間順序顯示的),同名不同產地的是前面有顯示,中間有顯示,後面也有顯示,經常是進了貨,入庫的時候才發現買重複了,其他產地的還有,數量還挺大,該買的卻又沒買。而且那軟體還有連線限制(限制3臺,區域網內共有四台,用一台作為伺服器,放在辦公室,當在伺服器上做採購計畫的時候,外邊銷售就只有兩台能用)。

所以我想做乙個「庫存上下限報警表單」通過查詢資料庫自動生成,降低做採購計畫時的工作量,同時繞過那個軟體的連線限制。

那個軟體用的是mssql server 2000,我買的php書上講的都是mysql,在網上查了查,好少,下了php手冊,翻譯了幾個小時的英文,終於能訪問能用了,呵呵^_^。下面是我理解的一些用php訪問mssql server 2000的方法給大家**,交流一下。

1、首先是準備工作:

在windows下通過php訪問mssql server 2000,可以有兩種方式,

(1)利用com

(2)一種是使用mssql_系列函式  

要使用這兩種都需要在php.ini進行設定:

(1)允許 dcom,需要將php.ini中的 ;com.allow_dcom=true前的分號";"去掉。

(2)使用mssql擴充套件,需要php.ini中的 ;extension=php_mssql.dll前的分號";"去掉。

解決方法:將php_mssql.dll,ntwdblib.dll拷貝到系統目錄/system32下重啟測試。。

另外設定好了後記得重啟伺服器哦。

2、利用com訪問mssql server的簡單方法

$conn = new com("adodb.connection") or die("cannot start ado");

//首先宣告乙個連線物件

$connstr = "provider=sqloledb;

persist security info=false;

user id=youruid;

password=yourpwd;

initial catalog=yourdatabase;

data source=127.0.0.1";

//設定連線字串(很奇怪data soure為localhost或伺服器名不行總是報錯而為(local)或127.0.0.1卻行,希望哪個高手幫我說明一下)

$conn->open($connstr);    //建立資料庫連線

$sqlstr = "select * from test";   //設定查詢字串

$rs = $conn->execute($sqlstr);   //執行查詢獲得結果

或者 //$rs = new com("adodb.recordset");         //宣告乙個資料集物件

//$rs->open($sqlstr,$conn);//,3,3);            //獲得資料集rcordset內容

$num_cols = $rs->fields->count();  //得到資料集列數  

while (!$rs->eof)         //輸出結果

//echo "/n";

//$rs->movenext(); }

$rs->close();      

$conn->close();

$rs = null;

$conn = null;

3、使用mssql_函式訪問mssql server的簡單方法

$hostname = "yourhoustname";

$username = "yourusername";

$password = "yourpassword";  

$conn = mssql_connect($hostname,$username,$password) or die("database failed to respond.");

//建立連線

$dbname = "yourdatabase";

$ret=mssql_select_db($dbname);   //選擇資料庫  

$sqlstr = "select * from test";   //設定查詢字串

$result=mssql_query($query);   //執行查詢獲得結果

while($line = mssql_fetch_row($result))  //輸出結果

或者

//while($row = mssql_fetch_array($result))

// 題外:

關於通過php訪問mssql server的小結就是這些了。希望能對你有所幫助,第一次寫又是初學,請你指出,共同進步。

求助:1、我在設定連線字串的時候,為什麼data soure為localhost或伺服器名不行總是報錯而為(local)或127.0.0.1卻行,希望哪個高手幫我說明一下

2、我在設定查詢字串的時候,如何對"like '%-'"(單引號內為乙個百分號和乙個短橫線)進行轉義 [

本帖最後由 maxy.feng 於 2007-3-5 17:40 編輯 ]

使用freetds庫連線MS SQL SERVER

1概述 在linux下連線mssql是一件很痛苦的事,因為微軟同志沒有提供任何介面給開發人員,還好,mssql是從sybase衍生出來的,freetds是乙個資料庫底層的驅動程式,用 freetds的庫進行開發是一件很方便的事。freetds可以連線sybase和ms sql server資料庫。2...

PHP使用PDO訪問ACCESS

php5中開始加入了pdo,對於不同的資料庫它採用統一的訪問方式,據說php6中將預設使用pdo運算元據庫。access是我經常用的一種資料庫,對於小的應用很方便!搜尋了一下,卻沒有找到具體的連線方法,於是邊搜尋邊研究,以下是pdo連線access的方法 程式 try dbq getcwd db.m...

php 資料庫 使用php訪問mysql

連線 code php 下面使用了函式庫mysqli,所以需要將php.ini檔案中的extension php.mysqli 開啟 這裡採用了物件導向的語法,當然,mysqli也支援面向過程的語法 db new mysqli localhost root tograce books 以上 例項化了...