當前位置:首頁 » 編程語言 » sql連接php
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql連接php

發布時間: 2022-12-20 12:33:45

A. 如何用PHP連接sql Server

1:PHP5.2.x本身有個php_mssql.dll的擴展用來連接Sql server,但是這個dll只是用來連接低版本 Sql server的(2000以下版本),在Sql server 2005及以上版本無法使用mssql_connect連接到資料庫
2:php5.3.x不再支持php_mssql.dll 拓展庫了,及時使用php5.2.x中的php_mssql.dll也無法使用。 微軟專門為PHP出了個SQL Server的擴展(Windows版本的),對於Windows下使用php開發SQL Server應用來說,這個擴展有利於利用SQL Server來開發php平台連接sql server資料庫管理系統。
一、php5.3以下的版本連接sql server
5.3以下的版本擴展裡面自帶一個php_mssql.dll;接資料庫的擴展,可以利用這個擴展鏈接資料庫,(只限於鏈接低版本資料庫)。
具體的步驟如下:
1:首先安裝sql server,超級不好安裝,我之前安裝的是2008版本的,Windows過期後就不能用了,然後重裝還裝不上,最後重裝系統才裝上
2:確定SQL裝的時候用的是混合認證模式,或SQL驗證模式,然後打開php的配置文件(php.ini),開啟mssql擴展 (extension=php_pdo_mssql.dll前面的分號去掉)並且需要把mssql.secure_connection = On 重啟後生效。
如果比較順利的話已經可以連接資料庫了,如果連不上就需要繼續低下的配置:
3: 檢查ntwdblib文件的版本(php/下面和Apache/下面)下載正確的版本的 ntwdblib.dll(2000.80.194.0)覆蓋現有的DLL文件,(把ntwdblib.dll,php_mssql.dll 復制到system32目錄中也可以)ntwdblib.dll 用於PHP連接MSSQL2005或2008的驅動文件。
4:測試連接:mssql_connect('localhost,1433', '用戶名', '密碼');
二、php5.3+連接sql server
其 實5.3以下的php版本已經很少用了,況且安全性和兼容性都不好,所以高版本的php還是比較常見的。實踐證明低版本的php連接資料庫成功率比較低 (2005以上的版本幾乎不能使用),推薦使用php5.3+ php使用微軟專門的擴展 SQLSRV 來連接sqlserver資料庫

1:先到微軟網站下載 SQL Server Driver for PHP 是一個自解壓的 EXE文件,解壓縮後你會得到這么幾個文件:

其中的52、53表示就是php的5.2.x和5.3.x 版本,選擇跟你php版本相匹配的;vc6或vc9的選擇要看你使用的是什麼web伺服器軟體,如果使用的是IIS那就選擇vc9的,如果是Apache 則選擇vc6的,ts和nts的選擇要看你安裝的php版本是線程安全版的還是非線程安全版,ts是線程安全,nts是非線程安全。
如果不知道可以在phpinfo里看Zend Extension Build這個屬性如下圖:

2:將擴展拷貝到拷到php/ext目錄下,在php.ini文件,添加一下代碼:
extension=在ext下的pdo擴展(用於pdo)
extension=在ext下的擴展
3:重啟伺服器,打開phpinfo();看到以下狀態就證明添加擴展成功,

4:連接測試:


<?php

$serverName = "(local)";

$connectionInfo = array("UID"=>"sa","PWD"=>"admin","Database"=>"db_online");

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

if( $conn ){

echo "Connection established. ";

}else{

echo "Connection could not be established. ";

die( var_mp(sqlsrv_errors()));

}

sqlsrv_close( $conn);

?>

注意這里的連接不是用mssql_connect而是用sqlsrv_connect,在這個版本中,還有幾個函數:
這個擴展為php新增了一系列sqlsrv_開頭的函數,常用的如下:

sqlsrv_connect
sqlsrv_close
sqlsrv_commit
sqlsrv_errors
sqlsrv_fetch
sqlsrv_fetch_array
sqlsrv_fetch_metadata
sqlsrv_num_rows
sqlsrv_query
sqlsrv_rollback
sqlsrv_rows_affected
. . .
另外注意的是,如果使用這個擴展連接Sql server 2005以及以上版本的sql server(如sql server 2008),你還需要在機器上先安裝 SQL Server Native Client
不然會出現如下錯誤:

array
0 =>array
0 =>string'IMSSP'(length=5)
'SQLSTATE' =>string'IMSSP'(length=5)
1 =>int-49
'code' =>int-49
2 =>string'This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
'message' =>string'This extension requires the Microsoft SQL Server 2008 Native Client. Access the following URL to download the Microsoft SQL Server 2008 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
1 =>array
0 =>string'IM002'(length=5)
'SQLSTATE' =>string'IM002'(length=5)
1 =>int0
'code' =>int0
2 =>string'[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序'(length=71)
'message' =>string'[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序'(length=71)
. . . .

解決方法:需要安裝SQL Server 2008 Native Client ODBC Driver,下載安裝文件sqlncli.msi,安裝後就可以了。

以上就是php連接sql server的方法,希望對大家解決類似問題有所幫助。



B. php怎麼連接sql server 2012

一、環境
php5.2.5
sqlserver2008
win7
二、配置php
1、打開php.in將extension=php_mssql.dll的注釋符號去掉。
2、打開php.in將mssql.secure_connection
=
off改為on。
3、從5.2開始,php就不再提供mssql.dll了,所以要php連接sql
server
2005/2008/2012必須要使用微軟提供的sql
server
for
php
2.0/3.0
這個文件可以上微軟官網下載(sqlsrv20.exe/sqlsrv30.exe),然後執行到wamp\php\ext文件夾下
打開php.ini文件
在extensions後面加上:
extension=php_sqlsrv_53_ts.dll
extension=php_pdo_sqlsrv_53_ts.dll
註:52代表php5.2
假如是php5.3就拷貝php_sqlsrv_53_ts_vc6.dll
關於vc6和vc9的區別
vc6
版本是使用
visual
studio
6
編譯器編譯的,如果你是在windows下使用apache+php的,請選擇vc6版本。
vc9
版本是使用
visual
studio
2008
編譯器編譯的,如果你是在windows下使用iis+php的,請選擇vc9版本。

C. 如何用php連接sql server資料庫

我用的PHP版本是php5.6.12,mssql資料庫版本為2008
兩種途徑:
1、直接連接
$servname="CAPTAINHERO567";
$conninfo=array(
"Database"=>"netdata",
"UID"=>"lxz2005",
"PWD"=>"831140");
$conn=sqlsrv_connect($servname,
$conninfo);
$sql="select
*
from
Pinfo";
$db=sqlsrv_query($conn,
$sql);
while($row=sqlsrv_fetch_array($db))
{
echo("
".iconv("GB2312","UTF-8",$row["Pname"])."
");
}
2、使用PDO抽象數據層連接
$hostname
=
"192.168.1.100";
$dbname
=
"Northwind";
$username
=
"sa";
$pwd
=
"pwd100";
$dsn="sqlsrv:Server=$hostname;database=$dbname";
$conn
=
new
PDO
($dsn,$username,$pwd);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
echo
"mssql
database
connnection
sucessed!";

D. PHP 能和SQL資料庫相連嗎

mysql可通過兩種方式通過php與web相連,一種通過php的mysql相關函數,另一種通過php的odbc相關函數
相關函數如下:

mysql函數

mysql_affected_rows: 得到 mysql 最後操作影響的列數目。
mysql_close: 關閉 mysql 伺服器連線。
mysql_connect: 開啟 mysql 伺服器連線。
mysql_create_db: 建立一個 mysql 新資料庫。
mysql_data_seek: 移動內部傳回指標。
mysql_db_query: 送查詢字串 (query) 到 mysql 資料庫。
mysql_drop_db: 移除資料庫。
mysql_errno: 傳回錯誤訊息代碼。
mysql_error: 傳回錯誤訊息。
mysql_fetch_array: 傳回陣列資料。
mysql_fetch_field: 取得欄位資訊。
mysql_fetch_lengths: 傳回單列各欄資料最大長度。
mysql_fetch_object: 傳回物件資料。
mysql_fetch_row: 傳回單列的各欄位。
mysql_field_name: 傳回指定欄位的名稱。
mysql_field_seek: 設定指標到傳回值的某欄位。
mysql_field_table: 獲得目前欄位的資料表 (table) 名稱。
mysql_field_type: 獲得目前欄位的型態。
mysql_field_flags: 獲得目前欄位的旗標。
mysql_field_len: 獲得目前欄位的長度。
mysql_free_result: 釋放傳回佔用記憶體。
mysql_insert_id: 傳回最後一次使用 insert 指令的 id。
mysql_list_fields: 列出指定資料表的欄位 (field)。
mysql_list_dbs: 列出 mysql 伺服器可用的資料庫 (database)。
mysql_list_tables: 列出指定資料庫的資料表 (table)。
mysql_num_fields: 取得傳回欄位的數目。
mysql_num_rows: 取得傳回列的數目。
mysql_pconnect: 開啟 mysql 伺服器長期連線。
mysql_query: 送出一個 query 字串。
mysql_result: 取得查詢 (query) 的結果。
mysql_select_db: 選擇一個資料庫。
mysql_tablename: 取得資料表名稱。

odbc函數

使用odbc函數需安裝mysql odbc

odbc_autocommit: 開關自動更動功能。
odbc_binmode: 設定二進位資料處理方式。
odbc_close: 關閉 odbc 連結。
odbc_close_all: 關閉所有 odbc 連結。
odbc_commit: 更動 odbc 資料庫。

odbc_connect: 連結至 odbc 資料庫。
odbc_cursor: 取得游標名。
odbc_do: 執行 sql 指令。
odbc_exec: 執行 sql 指令。
odbc_execute: 執行預置 sql 指令。
odbc_fetch_into: 取得傳回的指定列。
odbc_fetch_row: 取得傳回一列。
odbc_field_name: 取得欄位名稱。
odbc_field_type: 取得欄位資料形態。
odbc_field_len: 取得欄位資料長度。
odbc_free_result: 釋出傳回資料的記憶體。
odbc_longreadlen: 設定傳回欄的最大值。
odbc_num_fields: 取得欄位數目。
odbc_pconnect: 長期連結至 odbc 資料庫。
odbc_prepare: 預置 sql 指令。
odbc_num_rows: 取得傳回列數目。
odbc_result: 取得傳回資料。
odbc_result_all: 傳回 html 表格資料。
odbc_rollback: 撤消當前交易。
odbc_setoption: 調整 odbc 設定。

E. 怎樣用PHP連接sql資料庫

1、學習的方法,最好是看手冊
在前一篇文章中涉及到了連接資料庫sqlsrv_connect();還記得我們mysql連接資料庫的時候也是mysql_connect();兩者操作資料庫是很相似的。從零基礎開始學起的話,只能是查閱手冊。查看一下sqlsrv有哪些函數提供我們使用!推薦網址是:

【注意】很多的方法都跟mysql提供的方法很相似,看到後面的函數名就大概知道裡面的用法,比如說mysql執行sql語句的時候調用mysql_query();而sqlserver執行sql語句的時候調用也是sqlsrv_query(),但是特別注意一點就是,它們的傳遞參數不一樣。詳細的只能看一下手冊。接下來我簡單總結一下操作數據的方法

2、連接資料庫sqlsrv_connect()

<?php$serverName = "serverNamesqlexpress";//伺服器的名字,本地localhost$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn ) { echo "Connection established.<br />";
}else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true));
}

3、操作資料庫
1)執行sql語句sqlsrv_query(),返回值為true或者false,這里函數的用法跟mysql_query(),不一樣。它需要把連接的資源句柄當作參數傳進去,看源碼。資源句柄就是上面代碼連接資料庫的「$conn」。

$sql = "select * from test1"; //sql語句$data = sqlsrv_query($conn,$sql); //$conn資源句柄if($data == true){ die("執行成功");
}else{ die("執行失敗");
}

2)獲取結果集

//以數值索引數組、關聯數組或這兩種數組的形式檢索下一行的數據。類似於mysql_fetch_arraysqlsrv_fetch_array
//以對象形式檢索下一行的數據。sqlsrv_fetch_object 1234
$sql = "select * from test1";$data = sqlsrv_query($conn,$sql);if($data == true){ while($row = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) { echo $row['id'].", ".$row['name']."<br />";
}else{ die( print_r( sqlsrv_errors(), true));
}
}
$sql = "SELECT fName, lName FROM Table_1";$stmt = sqlsrv_query( $conn, $sql);if( $stmt === false ) { die( print_r( sqlsrv_errors(), true));
}while( $obj = sqlsrv_fetch_object( $stmt)) { echo $obj->fName.", ".$obj->lName."<br />";
}

3)顯示錯誤信息sqlsrv_errors():上面都有用到這個函數,只要是操作資料庫發生錯誤,都可以使用這個函數列印出來看一下壓
這里就不用上代碼了

F. php怎麼連接sql server

1.首先你要確定你用帳號密碼 能登陸sql_server伺服器(sql身份驗證進去), 至少用excel 的插入數據源的方式連接一下.

2.建議去直接去下載Wamp的版本(你自己配置環境可能用問題),裡面可以直接開啟PHP_MSSQL模塊

至少我用這個從來不會連接不上

3.可以試著用COM連接

這里講見怎麼用COM連接

允許 DCOM,需要將php.ini中的 ;com.allow_dcom=TRUE前的分號";"去掉。


4.建議使用 adodb 方式使用, 就我本人經驗, 用adodb 返回的recordset 支持最好

其他的總會碰到如 游標移動 問題, 記錄總數問題..


PHP code

?

$conn=newCOM("ADODB.Connection")ordie("CannotstartADO");

$connstr="Provider=SQLOLEDB;
PersistSecurityInfo=False;
UserID=sa;
Password=;
InitialCatalog=cdr;
DataSource=localhost";
$conn->Open($connstr);