① 如何讓php5.5連接上mssql
PHP 查看是否支持MSSQL的方法:
檢測是否存在mssql_connect函數;
<?php
if (function_exists("mssql_connect")){
echo 'PHP環境支持MSSQL!';
}else{
echo '環境不支持MSSQL資料庫!';
}
查看phpinfo中mssql配置項是否開啟,如果存在mssql配置項,則支持;否則,不支持。;
配置php連接mssql:
開啟mssql擴展;打開php.ini配置文件,去掉extension=php_pdo_mssql.dll和extension=php_mssql.dll前面的「;」然後重啟apache伺服器;
將PHP目錄下ext目錄下的php_mssql.dll和ntwdblib.dll,復制到WINDOWS/system32文件夾下,然後重啟apache即可。
② PHP+MS SQL怎麼連接啊
這個版本在生成的時候,就「--without-mssql」關閉了MSSQL了,加擴展是加不進去的,你需要下載一個沒有「--without-mssql」的版本(7.0.25這個版本就可以了),然後下載SQLSRV的dll,加到PHP裡面,這時候,phpinfo就可以看到SQLSRV了,但是這時候,資料庫連接的時候還是會失敗,這時候,就需要下載個微軟官網下載ODBC驅動了,然後就可以連上了,我也是搞了2天才搞起來。
③ 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如何連接mssql一個實例
資料庫查詢不外乎4個步驟,1、建立連接。2、輸入查詢代碼。3、建立查詢並取出數據。4、關閉連接。 php連接mssql資料庫有幾個注意事項,尤其mssql的多個版本、32位、64位都有區別。
首先,php.ini文件中;extension=php_pdo_mssql.dll ;extension=php_pdo_odbc.dll 前面的分號去掉,對應的使哪種方式連接mssql。注意要重啟服務使其生效。
一、建立連接
1、odbc
首先,在php程序所在的伺服器設置odbc。這里32位和64位操作系統有區別。32位的從控制面板中管理工具中的數據源(odbc)直接建立就可以了,64位的要運行C:\Windows\SysWOW64\odbcad32.exe
從這裡面設置。注意:上面只的是資料庫伺服器為32為的,數據源設置伺服器為32位和64位兩種的情況。只要兩個伺服器建立的數據源位數一致就好。
下面是odbc建立連接代碼。
復制代碼 代碼如下:
$con = odbc_connect('odbc名稱','用戶名','密碼');
2、連接mssql2000
復制代碼 代碼如下:
$con = mssql_connect('資料庫地址','用戶名','密碼');
3、連接mssql2008
復制代碼 代碼如下:
$connectionInfo = array("UID"=>用戶名,"PWD"=>密碼,"Database"=>"資料庫名稱");
$con = sqlsrv_connect( 資料庫地址,$connectionInfo);
二、輸入查詢代碼
這個都一樣,可以直接寫入,也可以從mssql中驗證好後復制過來。簡單點說就是把一個sql語句賦值給一個變數。
類似下面代碼
復制代碼 代碼如下:
$query = "SELECT top 12 * 資料庫名稱 order by id desc";
三、建立查詢並取出數據
1、odbc
復制代碼 代碼如下:
$result = odbc_do($con,$query);
while(odbc_fetch_row($result))
{
$變數名稱 = odbc_result($result, "欄位名稱");
}
2、連接mssql2000
復制代碼 代碼如下:
$result = mssql_query($con, $query);
while($row =mssql_fetch_array($result))
{
$變數名稱 = $row["欄位名稱"];
}
3、連接mssql2008
復制代碼 代碼如下:
$result = sqlsrv_query($con, $query);
while($row = sqlsrv_fetch_array($result))
{
$變數名稱 = $row["欄位名稱"];
}
在php5.3及以後的版本中不附帶sqlsrv庫了。所以要從微軟這里下載。
四、關閉連接
這個沒有什麼區別,分別是odbc_close();和mssql_close()和sqlsrv_close();
最後體會:php連接mssql比連接mssql的函數少了一些,但是也夠用了。具體函數可以參考php官方手冊
⑤ php怎麼樣連接sql資料庫
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存在,如果沒有,從www.php.net重新下載一個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 forPHPfor SQL Server,官方下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098,我使用的是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,然後訪問http://apache訪問地址/?Phpinfo=1,出現下面圖片中的內容,則代表配置正確。
(5)、寫測試代碼,測試代碼如下:
(6)、上面完成之後,測試代碼的時候會出現連接失敗,因為沒有安裝sql server nation client ,本地客戶端,去下載合適的客戶端,我使用的是Microsoft? SQL Server? 2012 Native Client,下載地址:
(7)、安裝完成之後,在重新啟動apache,然後訪問就可以連接成功了。
(8)、注意:在php.ini文件所在的文件夾中必須要有ntwdblib.dll文件存在。
⑥ php連接mssql的方法 怎樣實現php連接mssql
php不論是連接什麼資料庫,得首先保證在php.ini中相關資料庫的擴展是打開的,如
;extension
=
mysql
得把前面的;去掉才表明mysql資料庫的擴展打開了,才能使用,ms
sql也同理。
1。php連接mssql
$conn=mssql_connect("實例名或者伺服器ip","用戶名","密碼");
2。php連接mysql
$conn=mysql_connect("實例名或者伺服器ip","用戶名","密碼");
從連接中,你也可以看出來,其實不論php和什麼資料庫相連,差別都很小,只是函數名上的差別,如果你進一步使用的話,你也可以發現對資料庫的修改、手稿、更新等操作也只是函數名的差別,通一通百。
⑦ 求大神詳細講解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 ($nopa<0) {
$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方法的總結,
⑧ 怎樣用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():上面都有用到這個函數,只要是操作資料庫發生錯誤,都可以使用這個函數列印出來看一下壓
這里就不用上代碼了
⑨ PHP連接MSSQL資料庫的步驟
1.安裝SQL伺服器並添加PHP的MSSQL擴展2.使用以下代碼連接並測試< ?php $myServer = localhost; //主機 $myUser = sa; //用戶名 $myPass = password; //密碼 $myDB = Northwind; //MSSQL庫名 $s = @mssql_connect($myServer, $myUser, $myPass) or die(Couldnt connect to SQL Server on $myServer); $d = @mssql_select_db($myDB, $s) or die(Couldnt open database $myDB); $query = SELECT TitleOfCourtesy + +FirstName+ +LastName AS Employee ; $query .= FROM Employees ; $query .= WHERE Country=USA AND Left(HomePhone, 5) = (206); 原文地址: http://www.phpnewer.com/index.php/Ymgx/detail/id/50
⑩ 如何用PHP連接MSSQL資料庫
windows下面nbsp;nbsp;要安裝mssql或者,mssql客戶端nbsp;nbsp;安裝以後檢查在你的系統目錄下面是不是有ntwdblib.dll文件,如果有請繼續(一般安裝了mssql都會有);nbsp;nbsp;然後啟動mssql資料庫服務nbsp;nbsp;1:在php.ini文件里設置如下,找到nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;;extension=php_mssql.dllnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;把前面的分號去掉。2:找到extension_dirnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;=nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;d:extensionnbsp;nbsp;你的php.ini裡面可能不是d:extensionnbsp;nbsp;改成在php安裝目錄下面的extensions目錄下面的php_mssql.dll,所在的路徑,如果你沒有把它移動到其他地方(假設你的php安裝路徑是d:php)nbsp;nbsp;就改成extension_dir=d:phpextensionsnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; 3:把ntwdblib.dll拷貝到c:winntsystem32目錄下。 ntwdblib.dll的主要作用是提供sqlnbsp;server連接服務。nbsp; 我用的php版本是4.3.9,在安裝它的服器的nbsp;windows/system32/nbsp;下我查到ntwdblib.dll文件的版本是2000.2.8.0nbsp;,這個版本支持的是sqlnbsp;servernbsp;7.0,nbsp;因為安裝PHP時會把dlls下面的所有文件覆蓋到系統nbsp;目錄下,所以當我用它去連接nbsp;sqlnbsp;servernbsp;2000nbsp;的時候當然會是無法連接了。nbsp; 後來我在一台正常安裝sqlnbsp;servernbsp;2000nbsp;的伺服器上查到nbsp;ntwdblib.dll的版本是nbsp;2000.80.2039.0,sql2000的ntdblib.dll文件拷貝過來覆蓋到本機的windows/system32下,重啟伺服器後,一切正常。nbsp; 補充:如果資料庫名的開頭是數字時也會提示無法打開,這時要做的很簡單,把資料庫的名字用中括弧nbsp;[nbsp;]nbsp;括起來就搞定了,如nbsp;123bBSnbsp;改寫成nbsp;[123bBS]就沒有問題了,另外如果你的資料庫名字與sqlnbsp;server中的保留字沖突的話也會出現這種情況,用中括弧的方法一樣可以解決。nbsp; 然後重新啟動web伺服器,假設你的mssql安裝在本機上就可以用下面的測試nbsp;。nbsp;lt;?phpnbsp;nbsp;$con=mssql_connect(「localhost「,「user「,「password「);nbsp;nbsp;echonbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;「lt;brgt;連接成功「;nbsp;nbsp;elsenbsp;nbsp;echonbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;「連接失敗「;nbsp;nbsp;?gt;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; 祝你好運nbsp;nbsp;可以把localhost改成你安裝mssql的機器名稱nbsp;。