① 如何用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的方法,希望對大家解決類似問題有所幫助。
② php 連接sqlserver資料庫都需要什麼擴展
不需要mssql 擴展。
mssql擴展,是低版本的php上使用的。新版本改由微軟官方維護,改為 sqlsrv 和 pdo_sqlsrv了。
具體的環境和版本要求,可參考微軟官方的說明
SQL SERVER 配置用於 PHP 開發的環境
③ PHP 連接 SQLServer 失敗
下載兩支文件php_pdo_sqlsrv.dll,php_sqlsrv.dll放在php/ext/目錄下
php.ini 載入並開啟它
extension=php_pdo_sqlsrv.dll
extension=php_sqlsrv.dll
重啟AppServ
<?php
$conInfo=array('Database'=>'AdidasOnlineReport','UID'=>'sa','PWD'=>'alicy');
$link=sqlsrv_connect('10.68.81.48',$conInfo);
$rs=sqlsrv_query("select * from Report_Store",$link);
while($row = sqlsrv_fetch_array($rs)){
print_r($row);
}
sqlsrv_free_stmt($rs);
sqlsrv_close($link);
?>
④ php訪問sqlserver資料庫
你好😳😳😳
你是想問如何學習php吧,其實學習php相對其他的計算機語言.還是比較容易入門的.你要不去試試後盾網😳裡面教學資源豐富很不錯的選擇。畢業後的工資都上萬了.希望你能採納
⑤ php怎樣連接sqlserver資料庫
我用的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("<div>".iconv("GB2312","UTF-8",$row["Pname"])."</div>");
}
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!";
⑥ php 連接sqlserver 亂碼
你看看你
資料庫
和
數據表的編碼方式,然後就是
php頁面的編碼方式,頁面頭信息,最後就是瀏覽器顯示的編碼(跟隨頁面頭信息)。統一了就木有亂碼了,or
資料庫編碼
和
頁面顯示的編碼方式相同也能顯示。。。
⑦ php 怎麼連接sqlserver
准備工作:SQLSRV20.EXE(PHP mssql擴展庫)、php_mssql.dll文件。
安裝PHP mssql擴展庫:安裝SQLSRV20.EXE,選擇解壓路徑為:D:wampinphpphp5.2.9-2ext。
修改php.ini配置文件:打開php.ini配置文件,將其中
;extension=php_mssql.dll
;extension=php_pdo_mssql.dll
前面的分號去掉,然後再」Dynamic Extensions」區域的後面添加php_sqlsrv的動態鏈接庫文件: extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
注意事項:查看D:wampinphpphp5.2.9-2ext目錄下有也Php_mssql.dll文件。如果沒有,則下載該文件,復制到該目錄下。
測試環境配置是否成功:打開瀏覽器,在地址欄輸入http://localhost/?phpinfo=1 ,如果在打開的網頁中查詢到如下頁面內容,則配置成功,否則配置失敗。
⑧ php 怎麼連接sqlserver 資料庫
建議查看
手冊中的mssql部分!\
or
//
,
when
using
a
non
default
port
number$server
=
'KALLESPC\SQLEXPRESS';//
Connect
to
MSSQL$link
=
mssql_connect($server,
'sa',
'phpfi');if
(!$link)
{
die('Something
went
wrong
while
connecting
to
MSSQL');}?>
碰到問題之後再提問
⑨ PHP+SQLserver製作一個簡單的登錄功能。
<!-- content starts -->
<?php
if(isset($_POST['add']))
{
date_default_timezone_set('Etc/GMT-8');
$txtname=$_POST['username'];
$txpassword=$_POST['userpwd'];
$txtvalue=$_POST['quxnain'];
$sqlstr = "select * from T1_user where name='".$txtname."'and password=".$txpassword.";";
$conn = mysql_connect("192.168.0.3","root","root");//此處替換用戶名和密碼
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
$result = mysql_query($sqlstr);
$rs=mysql_fetch_array($result);
if($rs)
{
echo "<script>alert('登錄成功!')</script>";
if($txtvalue==1)
echo "<meta http-equiv=refresh content='0;url=../face.php'>";
else
echo "<meta http-equiv=refresh content='0;url=welcome.htm'>";
}
else
echo "<script>alert('用戶名或密碼錯誤!')</script>";
}
?>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="images/真煩人.gif" height="100%" width="100%"></img>>
</div>
<div style='height=100'></div>
<form name="form1" method="post" enctype="multipart/form-data" action="" onSubmit="return check()">
<div style="background-image:url(images/登錄小窗口.jpg);margin-left:150px;margin-top:140px;width:542px;height:220px">
<table width="449" height="139" style="margin-left:50px;margin-top:55px;">
<tr>
<td width="187">用戶名: <input name=username type=text class=radio0 size=19></td>
<td width="30" style="width:70px;"></td>
<td width="216"><button name="add" type="submit" style="background-image:url('images/登陸按鈕.jpg');width:210px;height:43px"></button></td>
</tr>
<tr></tr>
<tr>
<td>密 碼:<input name=userpwd type=password class=radio0 size=20></td>
<td></td>
<td></td>
</tr>
<tr>
<td >權 限:<select name="quxnain" style="width:90px">
<option value="1">用戶</option>
<option value="2">管理員</option>
</select></td>
<td></td>
<td><button type="reset" style="background-image:url('images/注冊按鈕.jpg');width:210px;height:43px" onClick="location='register.php'"></button></td>
</tr>
</table>
</div>
</form>
</body>
</html>
拿走用吧