php連接mssql資料庫方法(PHP連接資料庫)

  • 1、求大神詳細講解php連接mssql
  • 2、php怎麼樣連接sql資料庫
  • 3、php連接mssql的方法 怎樣實現php連接mssql

為了能讓PHP連接MSSQL,系統需要安裝MSSQL,PHP,且在PHP.ini中的配置中,將 ;extension=php_mssql.dll前面的;去掉

1.連接MSSQL

$conn=mssql_connect(“實例名或者伺服器IP”,”用戶名”,”密碼”);

//測試連接

if($conn)

{

echo “連接成功”;

}

2.選擇要連接的資料庫

mssql_select_db(“dbname”);

3.執行查詢

$rs = mssql_query(“select top 1 id,username from tbname”,$conn);

// 或者直接執行update,insert等語句,可以不用為返回結果賦值

mssql_query(“update tbname set username=’niunv’ where id=1”);

4.獲取記錄集行數

echo mssql_num_rows($rs);

5.獲取記錄集

if($row=mssql_fetch_array($rs))

{

$id = $row[0];//獲取ID欄位值

$username = $row[1];//獲取username欄位值

}

6.獲取新增記錄的ID

將id欄位設置為IDENTITY欄位,執行insert語句以後,就會產生一個

@@IDENTITY 全局變數值,查詢出來就是最後一條新增記錄的ID了.

mssql_query(“insert into tbname(username) values (‘nv’)”,$conn);

$rs = mssql_query(“select @@IDENTITY as id”,$conn);

if($row=mssql_fetch_array($rs))

{

echo $row[0];

}

7.釋放記錄集

mssql_free_result($rs);

8.關閉連接

mssql_close($conn);

注:用PHP操作MSSQL比在ASP連接MYSQL要簡單,所以,當需要MSSQL與MYSQL並存時,用PHP連接MSSQL來操作MYSQL與MSSQL並存比較簡單好用.如果是ASP連接MYSQL,需要安裝一個MYSQL驅動,默認windows的ODBC沒有安裝,很遺憾…

在web伺服器上至少安裝了mssql的客戶端

打開php.ini把;extension=php_mssql.dll

前面的分號去掉

有必要話:需要制定extension_dir

推薦使用 php=4.0.9

=5.0.3目前 我還沒有連接成功過4.010和 5.0.3

資料庫的 連接分頁可以到phpe.net上獲取到相應的class

下面是我修改的 一個class

?php

/**

*mssql 資料庫連接類

**/

class SQL{

var $server;

var $userName;

var $passWord;

var $dataBase;

var $linkID = 0;

var $queryResult;

var $lastInsertID;

var $pageNum = 0;//分頁用—共有幾條數據

var $ER;

/**

*構造函數

**/

function SQL($Server=”,$UserName=”,$PassWord=”,$DataBase=”){

$this-server = $Server;

$this-userName = $UserName;

$this-passWord = $PassWord;

$this-dataBase = $DataBase;

}

/**

*資料庫連接

**/

function db_connect(){

$this-linkID = mssql_pconnect($this-server,$this-userName,$this-passWord);

if(!$this-linkID){

$this-ER = “db_connect($this-server,$this-userName,$this-passWord) error”;

return 0;

}

if (!mssql_select_db($this-dataBase,$this-linkID)) {

$this-ER = “mssql_select_db($this-dataBase,$this-lastInsertID) error”;

return 0;

}

return $this-linkID;

}

/**public

* function: Check the database, if exist then select

* exist: return 1

* not exist: return 0

*/

function selectDatabase(){

if(mssql_select_db($this-dataBase))

return 1;

else

return 0;

}

/**

*數據操作

**/

function query($Str){

if ($this-linkID == 0) {

$this-ER = “資料庫還沒有連接!!”;

}

$this-queryResult = mssql_query($Str);

//$this-queryResult = mssql_query($Str,$this-linkID);

if (!$this-queryResult) {

$this-ER = “$Str.沒有操作成功,query error!!”;

return 0;//****************對於php 4.3.9以上版本的錯誤用1

}

return $this-queryResult;

}

/**

*數據獲取

**/

function fetch_array($result){

if($result != “”) $this-queryResult = $result;

$rec =mssql_fetch_array($this-queryResult);

if(is_array($rec)){

return $rec;

}

//$this-ER = “沒有獲取數據!”;

return 0;

}

/**public

* function: Free the Query Result

* success return 1

* failed: return 0

*/

function freeResult($result=””){

if($result != “”) $this-queryResult = $result;

return mssql_free_result($this-queryResult);

}

/**

*獲取影響的的行數

*獲取操作過的行數

**/

function num_rows($result=””){

if ($result != “”) {

$this-queryResult = $result;

$row = mssql_num_rows($this-queryResult);

return $row;

}

}

/**

*獲取查詢結果—多個

**/

function result_ar($str=”){

if (empty($str)) {

return 0;

}

$back = array();

$this-queryResult = $this-query($str);

while ($row = $this-fetch_array($this-queryResult)) {

$back[] = $row;

}

return $back;

}

/**

*資料庫信息分頁

*$Result 資料庫操作

*str ==sql語句

*page ==第幾頁

*showNum ==顯示幾頁

*/

function page($Str,$Page=0,$ShowNum=5){

$back = array();//返回數據

$maxNum = 0;

if ($Str == “”) {

$this-ER = “沒有數據”;

return 0;

}

$this-queryResult = $this-query($Str);

if($this-queryResult){

if($Page==””){

$nopa=0;

}else{

$nopa = ($Page-1)*$ShowNum;

if ($nopa0) {

$nopa = 0;

}

}

$maxNum=$this-num_rows($this-queryResult);

$k=0;

$i=0;

$dd=$this-fetch_array($this-queryResult);

while($dd$nopa=$maxNum$i$ShowNum){

if($nopa = $maxNum) $nopa = $maxNum;

mssql_data_seek($this-queryResult,$nopa);

$row=$this-fetch_array($this-queryResult);

$nopa++;

$i++;

$back[] = $row;

if ($nopa =$maxNum) {

break;

}

}

}

$this-pageNum = $maxNum;

return $back;

}

/**

*分頁的html頁碼

*/

function page_html($DataNum=0,$Page=1,$ShowNum=3,$web,$Post=”){

if ($DataNum == 0) {

$back = “沒有要查詢的數據”;

}else {

if ($ShowNum=0) {

$ShowNum = 3;

}

if ($Page=0) {

$Page = 1;

}

if (empty($web)) {

$web = “#”;

}

$pageNum = ceil($DataNum/$ShowNum);

if ($Page = 1) {

$top = “首頁”;

}else {

$top = “a href='”.$web.”?page=0″.$Post.”‘ target=’_self’首頁 /a”;

}

if ($Page !==1) {

$upPage = “a href='”.$web.”?page=”.($Page-1).””.$Post.”‘ target=’_self’上一頁/a”;

}else {

$upPage = “上一頁”;

}

if ($Page $pageNum) {

$downPage = “a href='”.$web.”?page=”.($Page+1).””.$Post.”‘ target=’_self’下一頁/a”;

}else {

$downPage = “下一頁”;

}

if ($Page == $pageNum) {

$foot = “尾頁”;

}else {

$foot = “a href='”.$web.”?page=”.$pageNum.””.$Post.”‘ target=’_self’ 尾頁/a”;

}

$back = EOT

共 $pageNum 頁

第 $Page/$pageNum 頁 $top $upPage $downPage $foot

EOT;

}

return $back;

}

}//end class

?

以上就是PHP連接MSSQL方法的總結,

1、軟體配置

Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2資料庫,wamp2.2中的php版本是5.3.10。

Php環境也可以換成php+apache。

2、支持連接MySQL Server配置

php版本5.3以前,有php_mssql功能,可以使用,但是5.3及以後的版本不支持。

2.1、php連接mssql設置(php5.3以前版本)

(1)、打開php.ini,將

;extension=php_mssql.dll前面的分號(;)去掉,然後重啟 Apache。如果不行的話,進行第2步。

(2)檢查一下你的php安裝目錄下的ext下面有沒有php_mssql.dll存在,如果沒有,從重新下載一個php安裝,要下載那個壓縮包的才是最完整的。

如果ext目錄下已經有了php_mssql.dll,那麼你需要打開php.ini,找到

extension_dir = “./ext”

這一句(或者類似的,不一定是”./ext”,查找”extension_dir”即可),然後把”./ext”修改為你的php安裝目錄的ext目錄的完整路徑,比如”c:/php/ext”,或者”c:/program files/php/ext”這樣。然後再次重啟 Apache。如果還是不行的話,可能就需要第3步了。

(3)把 php 目錄下的 ntwdblib.dll 和 php_mssql.dll 複製到 system32的系統目錄中去,然後重起Apache。

(4)然後就可以連接MSSQL,並進行一些操作了。連接例子如下:

2.2、php連接sqlsrv(php5.3以及以上版本)

(1)、下載Microsoft Drivers for PHP for SQL Server,官方下載地址:,我使用的是SQLSRV2.0。

(2)、解壓下載下來的文件將php_pdo_sqlsrv_53_ts_vc9.dll文件和php_sqlsrv_53_ts_vc9.dll文件複製到php安裝目錄下的ext文件夾中。此處根據版本不同使用的文件不同。

(3)、在php.ini中添加

extension=php_sqlsrv_53_ts_vc9.dll

extension=php_pdo_sqlsrv_53_ts_vc9.dll

到很多;extension=***.dll語句後面,注意extension_dir 指向的位置是否正確。

(4)、重啟apache,然後訪問訪問地址/?Phpinfo=1,出現下面圖片中的內容,則代表配置正確。

(5)、寫測試代碼,測試代碼如下:

?php

header(“Content-type: text/html; charset=utf-8”);

$serverName = “localhost”; //資料庫伺服器地址$uid = “foodcert”; //資料庫用戶名$pwd = “foodcert”; //資料庫密碼$connectionInfo = array(“UID”=$uid, “PWD”=$pwd, “Database”=”FoodCert”);

$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn == false)

{

echo “連接失敗!”;

die( print_r( sqlsrv_errors(), true));

}else{

echo “連接成功!”;  

}

$query = sqlsrv_query($conn, “select * from 資料庫表”);while($row = sqlsrv_fetch_array($query))

{

print_r($row);

}?

(6)、上面完成之後,測試代碼的時候會出現連接失敗,因為沒有安裝sql server nation client ,本地客戶端,去下載合適的客戶端,我使用的是Microsoft? SQL Server? 2012 Native Client,下載地址:

(7)、安裝完成之後,在重新啟動apache,然後訪問就可以連接成功了。

(8)、注意:在php.ini文件所在的文件夾中必須要有ntwdblib.dll文件存在。

php不論是連接什麼資料庫,得首先保證在php.ini中相關資料庫的擴展是打開的,如

;extension

=

mysql

得把前面的;去掉才表明mysql資料庫的擴展打開了,才能使用,ms

sql也同理。

1。php連接mssql

$conn=mssql_connect(“實例名或者伺服器ip”,”用戶名”,”密碼”);

2。php連接mysql

$conn=mysql_connect(“實例名或者伺服器ip”,”用戶名”,”密碼”);

從連接中,你也可以看出來,其實不論php和什麼資料庫相連,差別都很小,只是函數名上的差別,如果你進一步使用的話,你也可以發現對資料庫的修改、手稿、更新等操作也只是函數名的差別,通一通百。

原創文章,作者:AIR68,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126422.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AIR68的頭像AIR68
上一篇 2024-10-03 23:08
下一篇 2024-10-03 23:08

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進位的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進位。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有著廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29

發表回復

登錄後才能評論