本文目錄一覽:
- 1、php怎麼連接sql server
- 2、如何用PHP連接SQL Server
- 3、怎麼搭建PHP+SQL環境
- 4、php 中添加SQL老報錯
- 5、怎樣用PHP連接sql資料庫
- 6、php 如何把一條sql語句寫入資料庫
php怎麼連接sql server
一、環境
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版本。
如何用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.\n”;
}else{
echo “Connection could not be established.\n”;
die( var_dump(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: ‘(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: ‘(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的方法,希望對大家解決類似問題有所幫助。
怎麼搭建PHP+SQL環境
用iis可以做到php 和 .net 共存,你是windows2003系統嗎?
1:將php-5.2.4-Win32.zip解壓後命名為Php.複製到 C:\ 下.
2:將C:\php 與 C:\php\ext 所有*.dll文件複製到 C:\WINDOWS\system32 下並覆蓋.
3:將 C:\php 下的 php-win.exe,php.ini-dist,php.exe 三個文件複製到 C:\WINDOWS 並重命名 php.ini-dist 為 php.ini
4:打開IIS(信息服務) – Web服務擴展-添加一個新的 Web 擴展,擴展名 php ,要求文件 – 添加-瀏覽-C:\php\php5isapi.dll,設置擴展允許狀態項打勾
5:Web服務擴展 – 所有 Isapi 擴展 與 Internet 數據連接器兩項 – 設置擴展允許狀態項打勾
6:右擊所要支持Php的站點選擇屬性 – Isapi 篩選器 – 添加 – 篩選器名稱:php – 可執行文件:C:\php\php5isapi.dll
7:主目錄 – 配置 – 映射添加 – 可執行文件:C:\php\php5isapi.dll – 擴展名:.php
打開寫字板打 C:\WINDOWS\php.ini , 查找(Ctrl+f) register_globals = Off ,將 Off 改成 On ; extension_dir = 「./」 ,並將」./」改為」C:\php\ext「注意左側路徑不能有空格,後面所說第8點。解決無法載入 Gd 庫 與 Mysql 。之所以沒有載入的原因就是以前在配置時多出了空格導致。根據第8點的做法是可以解決無法載入 Gd 庫 與 Mysql 的問題。但也會有些系統也會出現白頁的情況 ;
將下面幾行代碼開頭 ; 號 刪除
;extension=php_dbase.dll 可選
;extension=php_gd2.dll 這個是用來支持GD庫的,一般需要,必選
;extension=php_ldap.dll 可選
;extension=php_mbstring.dll 必選
;extension=php_mssql.dll 這個是用來支持MSSQL的,可選
;extension=php_mysql.dll 這個是用來支持MYSQL的,要支持MYSQL必選將以上代碼前的」;」去掉,其他的如果需要用到也可以去掉前面的;然後關閉保存該文件。
php 中添加SQL老報錯
$sql = “INSERT INTO `admin_user` VALUES (NULL, ‘$UserName’, ‘$UserPwd’)”;
$res=mysql_query($sql);
if ($res) echo “scriptwindow.alert(‘發表成功!’);window.location.href=’User.php?Action=List’;/script”;
else echo “執行 $sql 出錯:”.mysql_error();
怎樣用PHP連接sql資料庫
1、學習的方法,最好是看手冊
在前一篇文章中涉及到了連接資料庫sqlsrv_connect();還記得我們mysql連接資料庫的時候也是mysql_connect();兩者操作資料庫是很相似的。從零基礎開始學起的話,只能是查閱手冊。查看一下sqlsrv有哪些函數提供我們使用!推薦網址是:
【注意】很多的方法都跟mysql提供的方法很相似,看到後面的函數名就大概知道裡面的用法,比如說mysql執行sql語句的時候調用mysql_query();而sqlserver執行sql語句的時候調用也是sqlsrv_query(),但是特別注意一點就是,它們的傳遞參數不一樣。詳細的只能看一下手冊。接下來我簡單總結一下操作數據的方法
2、連接資料庫sqlsrv_connect()
?php$serverName = “serverName\sqlexpress”;//伺服器的名字,本地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():上面都有用到這個函數,只要是操作資料庫發生錯誤,都可以使用這個函數列印出來看一下壓
這裡就不用上代碼了
php 如何把一條sql語句寫入資料庫
?php
$dbhost = ‘localhost:3306’; // mysql伺服器主機地址
$dbuser = ‘root’; // mysql用戶名
$dbpass = ‘123456’; // mysql用戶名密碼
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die(‘連接失敗: ‘ . mysqli_error($conn))
;}
echo ‘連接成功br /’; // 設置編碼,防止中文亂碼mysqli_query($conn , “set names utf8”);
$runoob_title = ‘學習 Python’;
$runoob_author = ‘RUNOOB.COM’;
$submission_date = ‘2016-03-06’;
$sql = “INSERT INTO runoob_tbl “.
“(runoob_title,runoob_author, submission_date) “.
“VALUES “.
“(‘$runoob_title’,’$runoob_author’,’$submission_date’)”;
mysqli_select_db( $conn, ‘RUNOOB’ );$retval = mysqli_query( $conn, $sql );
if(! $retval ){
die(‘無法插入數據: ‘ . mysqli_error($conn))
;}
echo “數據插入成功\n”;
mysqli_close($conn);
?
按照步驟開始,多看PHP手冊。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244373.html