php連接mssql兩種方法_第1頁
php連接mssql兩種方法_第2頁
php連接mssql兩種方法_第3頁
php連接mssql兩種方法_第4頁
php連接mssql兩種方法_第5頁
已閱讀5頁,還剩75頁未讀, 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

php連接mssql兩種方法(com&pdo)分類:MSSQL類php2009-11-1311:311309人閱讀評論(0)\o"收藏"收藏\o"舉報"舉報phpextension服務器數據庫擴展query使用COM1、首先是準備工作:

在Windows下通過PHP訪問MSSQLSERVER2000,可以有兩種方式,

(1)利用COM

(2)一種是使用MSSQL_系列函數

要使用這兩種都需要在php.ini進行設定:

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

(2)使用MSSQL擴展,需要php.ini中的;extension=php_mssql.dll前的分號";"去掉。

(3)確認extension_dir為正確路徑,以本機為例:extension_dir="c:/AppServ/php5/ext"。

(4)如果仍然機器報錯說找不到c:/AppServ/php5/ext/php_mssql.dll但明明存在這個文件。

解決方法:將php_mssql.dll,ntwdblib.dll拷貝到系統目錄/system32下重啟測試。。

(注:上面兩個dll文件不在相同目錄下,我的為c:/AppServ/php5/ext/php_mssql.dll;c:/AppServ/php5/ntwdblib.dll)

另外設置好了后記得重啟服務器哦。

我的PHP環境是用AppServ搭建的,我這樣做了后,訪問MSSQLSERVER一切正常。若你仍然有問題,請查閱PHP手冊php.ini的設置。

2、利用COM訪問MSSQLSERVER的簡單方法

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

//首先聲明一個連接對象

$connstr="Provider=SQLOLEDB;

PersistSecurityInfo=False;

UserID=youruid;

Password=yourpwd;

InitialCatalog=yourdatabase;

DataSource=";

//設置連接字符串(很奇怪DataSoure為localhost或服務器名不行總是報錯而為(local)或卻行,希望哪個高手幫我說明一下)

$conn->Open($connstr);//建立數據庫連接

$sqlstr="select*fromtest";//設置查詢字符串

$rs=$conn->Execute($sqlstr);//執行查詢獲得結果

或者

//$rs=newcom("adodb.recordset");

//聲明一個數據集對象

//$rs->open($sqlstr,$conn);//,3,3);

//獲得數據集rcordset內容

$num_cols=$rs->Fields->Count();

//得到數據集列數

while(!$rs->EOF)

//輸出結果

{

echo$rs->Fields['name']->Value."<BR>";//'name'為字段名,需要明確制定

$rs->MoveNext();

或者

//for($i=0;$i<$num_columns;$i++)

//{

//echo$fld[$i]->value."/t";

//}

//echo"/n";

//$rs->MoveNext();

}

$rs->Close();

$conn->Close();

$rs=null;

$conn=null;

3、使用MSSQL_函數訪問MSSQLSERVER的簡單方法

$hostname="yourhoustname";

$username="yourusername";

$password="yourpassword";

$conn=mssql_connect($hostname,$username,$password)ordie("DATABASEFAILEDTORESPOND.");

//建立連接

$dbName="yourdatabase";

$ret=mssql_select_db($dbName);//選擇數據庫

$sqlstr="select*fromtest";//設置查詢字符串

$result=mssql_query($query);//執行查詢獲得結果

while($line=mssql_fetch_row($result))

//輸出結果

{

echo"$line[0],$line[1]";

//mssql_fetch_row每次返回一個enumerated(列舉)array,直到沒有數據而返回false

}

或者

//while($row=mssql_fetch_array($result))

//{

//echo$row["name"];

或者

//echo$row[0],$row[1];

//mssql_fetch_array每次返回一個數字索引數組或一個相關數組,直到沒有數據而返回false

//}題外:

關于通過PHP訪問MSSQLSERVER的小結就是這些了。希望能對你有所幫助,第一次寫又是初學,請你指出,共同進步。

求助:

1、我在設置連接字符串的時候,為什么DataSoure為localhost或服務器名不行總是報錯而為(local)或卻行,希望哪個高手幫我說明一下

2、我在設置查詢字符串的時候,如何對"LIKE'%-'"(單引號內為一個百分號和一個短橫線)進行轉義

使用pdo1、首先仍然是準備工作:

(1)使用PDO擴展,需要將php.ini中的;extension=php_pdo.dll前的分號";"去掉。

(2)訪問MSSQL,需要將php.ini中的;extension=php_pdo_mssql.dll前的";"去掉(沒有則添加)。

補充:如果你需要訪問MySQL,需要將php.ini中的;extension=php_pdo_mssql.dll前的";"去掉。

其他數據庫請去掉相應擴展前的";"。

(3)確認extension_dir為正確路徑,以本機為例:extension_dir="c:/AppServ/php5/ext"。

(4)如果仍然機器報錯說找不到c:/AppServ/php5/ext/php_mssql.dll但明明存在這個文件。

解決方法:將php_mssql.dll,ntwdblib.dll拷貝到系統目錄/system32下重啟測試。。

(注:上面兩個dll文件不在相同目錄下,我的為c:/AppServ/php5/ext/php_mssql.dll;c:/AppServ/php5/ntwdblib.dll)

另外:設置完畢后仍然記得要重啟服務器哦2、使用PDO訪問MSSQLSERVER的簡單方法

$username=yourusername;

$pwd=yourpassword;

try

{

//??host=可用;(local)不可用;localhost不可用;MAXY不可用

$dbh=newPDO('mssql:host=;dbname=yourdatabase',$username,$pwd);

//聲明一個PDO對象并指定它的連接字符串

$sqlstri="select*fromUpLow";

//指定查詢字符串

foreach($dbh->query($sqlstri)as$row)

//執行查詢獲得結果,并輸出

{

print_r($row);

或者

//echo$row['name'];

//指定字段輸出

}

}

catch(PDOException$e)

{

print"Error!;".$e->getMessage()."<br>";

}

mysqlexception數據庫extensionquery

PDO(PHPDataObject)是PHP5新出來的東西,在PHP6都要出來的時候,PHP6只默認使用PDO來處理數據庫,將把所有的數據庫擴展移到了PECL,那么默認就是沒有了我們喜愛的php_mysql.dll之類的了,那怎么辦捏,我們只有與時俱進了,我就小試了一把PDO。(本文只是入門級的,高手可以略過,呵呵)【PDO是啥】PDO是PHP5新加入的一個重大功能,因為在PHP5以前的php4/php3都是一堆的數據庫擴展來跟各個數據庫的連接和處理,什么php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等擴展來連接MySQL、PostgreSQL、MSSQLServer、SQLite,同樣的,我們必須借助ADOdb、PEAR::DB、PHPlib::DB之類的數據庫抽象類來幫助我們,無比煩瑣和低效,畢竟,php代碼的效率怎么能夠我們直接用C/C++寫的擴展斜率高捏?所以嘛,PDO的出現是必然的,大家要平靜學習的心態去接受使用,也許你會發現能夠減少你不少功夫哦。【安裝PDO】我是在WindowsXPSP2上面,所以嘛,整個過程都是在Windows行進行的啦,至于Linux/FreeBSD等平臺,請自行查找資料設置安裝。

我的是PHP5.1.4,已經自帶有了php_pdo.dll的擴展,不過需要稍微設置一下才能使用。打開c:/windows/php.ini,那是我的PHP配置文件,找到下面這行:extension_dir這個就是我們擴展存在的目錄,我的PHP5擴展是在:C:/php5/ext,那么我就把這行改成:extension_dir="C:/php5/ext"然后再往php.ini下面找到:;;;;;;;;;;;;;;;;;;;;;;

;DynamicExtensions;

;;;;;;;;;;;;;;;;;;;;;;下面有一堆類似;extension=php_mbstring.dll的東西,這里就是PHP擴展加載的配置了,我們再最后面添加上我們PDO的擴展:extension=php_pdo.dll

extension=php_pdo_mysql.dll

extension=php_pdo_pgsql.dll

extension=php_pdo_sqlite.dll

extension=php_pdo_mssql.dll

extension=php_pdo_odbc.dll

extension=php_pdo_firebird.dll

;extension=php_pdo_oci8.dll各種PDO的驅動,能給加上的全給加上,不過后面的php_pdo_oci8.dll,因為我沒有安裝Oralce數據庫,所以沒有這個,就使用分號注釋掉它。然后重啟我們的Web服務器,IIS/Apache,我的是IIS,嘿嘿,表鄙視我,在Windows上,簡單嘛。重啟后,在我們Web服務器的文檔目錄下寫一個phpinfo.php的文件,加上這些:<?

phpinfo();

?>然后打開我們可愛的瀏覽器:IE/FireFox,我的是FireFox2.0,剛下載的,很爽,不怕流氓軟件,哈哈。在瀏覽器里面輸入:http://localhost/phpinfo.php,如果你的這個頁面路徑不一致,請自行輸入。輸出的內容中,如果你能夠順利的看到:PDO

PDOsupportenabled

PDOdriversmysql,pgsql,sqlite,mssql,odbc,firebird

后面有各種驅動的說明:PDO_Firebird,pdo_mssql,pdo_mysql,PDO_ODBC,pdo_pgsql,pdo_sqlite那么,恭喜你安裝成功了,否則請仔細檢查上面的步驟?!九5缎⌒≡嚒课矣玫氖荕ySQL4.0.26,但是我個人推薦大家使用MySQL4.1.x或者MySQL5.0.x,因為那些版本有很多有趣的東西值得去學習。我們這里PDO需要連接的就是我的MySQL4.0啦,如果你沒有安裝MySQL,請自行安裝。我們建立好了MySQL,并且在test庫里添加了表foo,包括id,name,gender,time等四個字段。我們開始構造第一個PDO應用,建立一個pdo.php文件在Web文檔目錄下:<?php

$dsn="mysql:host=localhost;dbname=test";

$db=newPDO($dsn,'root','');

$count=$db->exec("INSERTINTOfooSETname='heiyeluren',gender='男',time=NOW()");

echo$count;

$db=null;

?>不明白啥意思,俺們來慢慢講講。這行:$dsn="mysql:host=localhost;dbname=test";就是構造我們的DSN(數據源),看看里面的信息包括:數據庫類型是mysql,主機地址是localhost,數據庫名稱是test,就這么幾個信息。不同數據庫的數據源構造方式是不一樣的。$db=newPDO($dsn,'root','');初始化一個PDO對象,構造函數的參數第一個就是我們的數據源,第二個是連接數據庫服務器的用戶,第三個參數是密碼。我們不能保證連接成功,后面我們會講到異常情況,這里我們姑且認為它是連接成功的。$count=$db->exec("INSERTINTOfooSETname='heiyeluren',gender='男',time=NOW()");

echo$count;調用我們連接成功的PDO對象來執行一個查詢,這個查詢是一個插入一條記錄的操作,使用PDO::exec()方法會返回一個影響記錄的結果,所以我們輸出這個結果。最后還是需要結束對象資源:$db=null;默認這個不是長連接,如果需要數據庫長連接,需要最后加一個參數:array(PDO::ATTR_PERSISTENT=>true)變成這樣:$db=newPDO($dsn,'root','',array(PDO::ATTR_PERSISTENT=>true));一次操作就這么簡單,也許跟以前的沒有太大區別,跟ADOdb倒是有幾分相似?!纠^續了解】如果我們想提取數據的話,那么就應該使用數據獲取功能。(下面用到的$db都是上面已經連接好的對象)<?php

foreach($db->query("SELECT*FROMfoo")){

print_r($row);

}

?>我們也可以使用這種獲取方式:<?php

$rs=$db->query("SELECT*FROMfoo");

while($row=$rs->fetch()){

print_r($row);

}

?>如果想一次把數據都獲取到數組里可以這樣:<?php

$rs=$db->query("SELECT*FROMfoo");

$result_arr=$rs->fetchAll();

print_r($result_arr);

?>Array

([0]=>Array(

[id]=>1

[0]=>1

[name]=>heiyeluren

[1]=>heiyeluren

[gender]=>男

[2]=>男

[time]=>2006-10-2823:14:23

[3]=>2006-10-2823:14:23

)

}我們看里面的記錄,數字索引和關聯索引都有,浪費資源,我們只需要關聯索引的:<?php

$db->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);

$rs=$db->query("SELECT*FROMfoo");

$rs->setFetchMode(PDO::FETCH_ASSOC);

$result_arr=$rs->fetchAll();

print_r($result_arr);

?>看上面的代碼,setAttribute()方法是設置部分屬性,主要屬性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等等,我們這里需要設置的是PDO::ATTR_CASE,就是我們使用關聯索引獲取數據集的時候,關聯索引是大寫還是小寫,有幾個選擇:PDO::CASE_LOWER--強制列名是小寫

PDO::CASE_NATURAL--列名按照原始的方式

PDO::CASE_UPPER--強制列名為大寫我們使用setFetchMode方法來設置獲取結果集的返回值的類型,同樣類型還有:PDO::FETCH_ASSOC--關聯數組形式

PDO::FETCH_NUM--數字索引數組形式

PDO::FETCH_BOTH--兩者數組形式都有,這是缺省的

PDO::FETCH_OBJ--按照對象的形式,類似于以前的mysql_fetch_object()當然,一般情況下我們是使用PDO::FETCH_ASSOC,具體使用什么,按照你自己的需要,其他獲取類型參考手冊。除了上面這種獲取數據的方式,還有這種:<?php

$rs=$db->prepare("SELECT*FROMfoo");

$rs->execute();

while($row=$rs->fetch()){

print_r($row);

}

?>其實差不多啦。如果你想獲取指定記錄里一個字段結果的話,可以使用PDOStatement::fetchColumn():<?php

$rs=$db->query("SELECTCOUNT(*)FROMfoo");

$col=$rs->fetchColumn();

echo$col;

?>一般使用fetchColumn()來進行count統計或者某些只需要單字段的記錄很好操作。簡單的總結一下上面的操作:查詢操作主要是PDO::query()、PDO::exec()、PDO::prepare()。PDO::query()主要是用于有記錄結果返回的操作,特別是SELECT操作,PDO::exec()主要是針對沒有結果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的結果是當前操作影響的列數。PDO::prepare()主要是預處理操作,需要通過$rs->execute()來執行預處理里面的SQL語句,這個方法可以綁定參數,功能比較強大,不是本文能夠簡單說明白的,大家可以參考手冊和其他文檔。獲取結果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。PDOStatement::fetchColumn()是獲取結果指定第一條記錄的某個字段,缺省是第一個字段。PDOStatement::fetch()是用來獲取一條記錄,PDOStatement::fetchAll()是獲取所有記錄集到一個中,獲取結果可以通過PDOStatement::setFetchMode來設置需要結果集合的類型。另外有兩個周邊的操作,一個是PDO::lastInsertId()和PDOStatement::rowCount()。PDO::lastInsertId()是返回上次插入操作,主鍵列類型是自增的最后的自增ID。PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()進行DELETE、INSERT、UPDATE操作影響的結果集,對PDO::exec()方法和SELECT操作無效。【錯誤處理】如果程序中碰到錯誤咋辦?我們這里描述PDO類的錯誤信息和異常處理。1.面向對象的方式先看看如果連接錯誤等的處理,使用面向對象的方式來處理:<?php

try{

$db=newPDO('mysql:host=localhost;dbname=test',$user,$pass);

$db=null;

}catch(PDOException$e){

print"Error:".$e->getMessage()."<br/>";

die();

}

?>這里利用我們PHP5面向對象的異常處理特征,如果里面有異常的話就初始化調用PDOException來初始化一個異常類。PDOException異常類的屬性結構:<?php

classPDOExceptionextendsException

{

public$errorInfo=null;//錯誤信息,可以調用PDO::errorInfo()或PDOStatement::errorInfo()來訪問

protected$message;//異常信息,可以試用Exception::getMessage()來訪問

protected$code;//SQL狀態錯誤代碼,可以使用Exception::getCode()來訪問

}

?>這個異常處理類是集成PHP5內置的異常處理類,我們簡單的看一下PHP5內置的異常處理類結構:<?php

classException

{

//屬性

protected$message='Unknownexception';//異常信息

protected$code=0;//用戶自定義異常代碼

protected$file;//發生異常的文件名

protected$line;//發生異常的代碼行號//方法

finalfunctiongetMessage();//返回異常信息

finalfunctiongetCode();//返回異常代碼

finalfunctiongetFile();//返回發生異常的文件名

finalfunctiongetLine();//返回發生異常的代碼行號

finalfunctiongetTrace();//backtrace()數組

finalfunctiongetTraceAsString();//已格成化成字符串的getTrace()信息

}

?>相應的,在代碼中可以合適的調用getFile()和getLine()來進行錯誤定位,更方便的進行調試。2.使用面向過程的方法先看代碼:<?

$db=newPDO('mysql:host=localhost;dbname=test',$user,$pass);

$rs=$db->query("SELECTaa,bb,ccFROMfoo");

if($db->errorCode()!='00000'){

print_r($db->errorInfo());

exit;

}

$arr=$rs->fetchAll();

print_r($arr);

$db=null;

?>PDO和PDOStatement對象有errorCode()和errorInfo()方法,如果沒有任何錯誤,errorCode()返回的是:00000,否則就會返回一些錯誤代碼。errorInfo()返回的一個數組,包括PHP定義的錯誤代碼和MySQL的錯誤代碼和錯誤信息,數組結構如下:Array

(

[0]=>42S22

[1]=>1054

[2]=>Unknowncolumn'aaa'in'fieldlist'

)每次執行查詢以后,errorCode()的結果都是最新的,所以我們可以很容易自己控制錯誤信息顯示?!竞唵慰偨Y】從上面的使用看出,PDO功能確實強大,另外還有一些內容我沒有講到,比如綁定參數、預處理、存儲過程、事務處理等等功能。另外還有不同數據擴DSN的構造,Oracle數據庫自己很多特殊的東西,都需要深入去學習理解,這篇文章就只是簡單的描述了一些入門知識,算是對PDO一個簡單的了解吧。<?php

$mysql_server_name='localhost';

$mysql_username='root';

$mysql_password='12345678';

$mysql_database='mycounter';

$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);

$sql='CREATEDATABASEmycounterDEFAULTCHARACTERSETgbkCOLLATEgbk_chinese_ci;

';

mysql_query($sql);

$sql='CREATETABLE`counter`(`id`INT(255)UNSIGNEDNOTNULLAUTO_INCREMENT,`count`INT(255)UNSIGNEDNOTNULLDEFAULT0,PRIMARYKEY(`id`))TYPE=innodb;';

mysql_select_db($mysql_database,$conn);

$result=mysql_query($sql);

//echo$sql;

mysql_close($conn);

echo"Hello!數據庫mycounter已經成功建立!";

?>php使用adodb連接mssql數據庫代碼2010-09-1315:27:19

我來說兩句

收藏

我要投稿php使用adodb連接mssql數據庫代碼

include_once(adodb5/adodb.inc.php);

$conn=adonewconnection(odbc_mssql);

$conn->pconnect("driver={sqlserver};server=dlut-pcsqlexpress;database=yuyan;",zhouhao,950288);

$adodb_fetch_mode=adodb_fetch_assoc;

$sqlstr=select*fromyuyanwhereps教程nno=?;

$rst=$conn->execute($sqlstr,005)ordie(connecterror);

while(!$rst->eof)

{

//echo$rst->fields[ps教程nname].->.$rst->fields[psnno].;

echodajiahao;

$rst->movenext();

}

$rst->close();

$conn->close();幾種常用PHP連接數據庫的代碼示例2009-12-0313:34佚名百度博客字號:T|T我們今天為大家介紹的PHP連接數據庫的方法包括在MYSQL數據庫,ACCESS數據庫,MSSQL數據庫和Oracle數據庫中實現。AD:2014WOT全球軟件技術峰會北京站課程視頻發布PHP語言經常被程序員用來開發網站,在實際操作中肯定會與數據庫打上交道。今天我們就為大家介紹有關PHP連接數據庫的各種方法,希望對大家有用。解讀PHP函數strrev()以外的三種逆序排列PHP自定義異常處理器的幾種使用方法如何正確實現PHP網站優化教你如何正確安裝phpDocumentor如何正確配置PHP開發環境PHP連接數據庫之PHP連接MYSQL數據庫代碼<

?php

$mysql_server_name='localhost';

//改成自己的mysql數據庫服務器

$mysql_username='root';

//改成自己的mysql數據庫用戶名

$mysql_password='12345678';

//改成自己的mysql數據庫密碼

$mysql_database='mycounter';

//改成自己的mysql數據庫名

$conn=mysql_connect($mysql_server_name,

$mysql_username,$mysql_password,

$mysql_database);

$sql='CREATE

DATABASE

mycounter

DEFAULT

CHARACTER

SET

gbk

COLLATE

gbk_chinese_ci;

';

mysql_query($sql);

$sql='CREATE

TABLE

`counter`

(`id`

INT(255)

UNSIGNED

NOT

NULL

AUTO_INCREMENT

,`count`

INT(255)

UNSIGNED

NOT

NULL

DEFAULT

0,PRIMARY

KEY

(

`id`

)

)

TYPE

=

innodb;';

mysql_select_db($mysql_database,$conn);

$result=mysql_query($sql);

//echo

$sql;

mysql_close($conn);

echo

"Hello!數據庫mycounter已經成功建立!";

?>

PHP連接數據庫之PHP連接ACCESS數據庫代碼方法<

?

$conn

=

new

com("ADODB.Connection");

$connstr

=

"DRIVER={Microsoft

Access

Driver

(*.mdb)};

DBQ=".

realpath("data/db.mdb");

$conn->Open($connstr);

$rs

=

new

com("ADODB.RecordSet");

$rs->Open("select

*

from

szd_t",$conn,1,1);

while(!

$rs->eof)

{

$f

=

$rs->Fields(1);

echo

$f->value;

$rs->MoveNext();

}

?>

PHP連接數據庫之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);

$result

=

mssql_query($query);

$numRows

=

mssql_num_rows($result);

echo

<h1>

.

$numRows

.

Row

.

($numRows

==

1

?

:

s)

.

Returned

</h1>;

while($row

=

mssql_fetch_array($result))

{

echo

<li>

.

$row[Employee]

.

</li>;

}

?>

PHP連接數據庫之PHP連接Oracle數據庫PHP提供了兩套函數與Oracle連接,分別是ORA_和OCI函數。其中ORA_函數略顯陳舊。OCI函數更新據說更好一些。兩者的使用語法幾乎相差無幾。你的PHP安裝選項應該可以支持兩者的使用。<?

if

($conn=Ora_Logon

("user@TNSNAME","password"))

{

echo

"SUCCESS

!

Connected

to

database\n";

}else

{echo

"Failed

:-(

Could

not

connect

to

database\n";}

Ora_Logoff($conn);

phpinfo();

?>

以上PHP連接數據庫的代碼使用TNSNAME(在你的tnsnames.ora文件中指明)定義的Oracle數據庫名稱、用戶名稱和密碼連接數據庫。在成功連接的基礎上,ora_logon函數返回一個非零的連接ID并儲存在變量$conn中。注意要重啟服務使其生效。一、建立連接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="SELECTtop12*數據庫名稱orderbyiddesc";三、建立查詢并取出數據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庫了。所以要從微軟這里下載。四、關閉連接問:我在自己電腦搭建了一個服務器環境,本機已經安裝SQLSever2005和PHP服務器,IP地址是自動獲取的,我在MSSQL中建了一個student_db的數據庫,庫中有一個student表,用戶名為sa,密碼為空

請解答:

問題1:請參照如上信息寫出php.ini的配置方法、寫出需要安裝的東西

問題2:.寫出PHP連接MSSQL的代碼答:1.安裝SQL服務器并添加PHP的MSSQL擴展2.使用以下代碼連接并測試<?php$myServer=localhost;//主機$myUser=sa;//用戶名$myPass=password;//密碼$myDB=Northwind;//MSSQL庫名$s=@mssql_connect($myServer,$myUser,$myPass)ordie(CouldntconnecttoSQLServeron$myServer);$d=@mssql_select_db($myDB,$s)ordie(Couldntopendatabase$myDB);$query=SELECTTitleOfCourtesy++FirstName++LastNameASEmployee;$query.=FROMEmployees;$query.=WHERECountry=USAANDLeft(HomePhone,5)=(206);原文地址:/index.php/Ymgx/detail/id/50php使用adodb連接mssql數據庫代碼2010-09-1315:27:19

我來說兩句

收藏

我要投稿php使用adodb連接mssql數據庫代碼

include_once(adodb5/adodb.inc.php);

$conn=adonewconnection(odbc_mssql);

$conn->pconnect("driver={sqlserver};server=dlut-pcsqlexpress;database=yuyan;",zhouhao,950288);

$adodb_fetch_mode=adodb_fetch_assoc;

$sqlstr=select*fromyuyanwhereps教程nno=?;

$rst=$conn->execute($sqlstr,005)ordie(connecterror);

while(!$rst->eof)

{

//echo$rst->fields[ps教程nname].->.$rst->fields[psnno].;

echodajiahao;

$rst->movenext();

}

$rst->close();

$conn->close();<VirtualHost*:80>#ServerAdminwebmaster@dummy-host.PHP77.COM#DocumentRoot"C:/WWW/APACHE2/docs/dummy-host.PHP77.COM" DocumentRoot"C:/WWW/APACHE2/docs/a_COM" ServerName#ServerNamedummy-host.PHP77.COM#ServerAliaswww.dummy-host.PHP77.COM#ErrorLog"logs/dummy-host.PHP77.COM-error.log"#CustomLog"logs/dummy-host.PHP77.COM-access.log"common</VirtualHost><VirtualHost*:80>#ServerAdminwebmaster@dummy-host2.PHP77.COM#DocumentRoot"C:/WWW/APACHE2/docs/dummy-host2.PHP77.COM" DocumentRoot"C:/WWW/APACHE2/docs/b_COM" ServerName#ServerNamedummy-host2.PHP77.COM#ErrorLog"logs/dummy-host2.PHP77.COM-error.log"#CustomLog"logs/dummy-host2.PHP77.COM-access.log"common</VirtualHost>--apache2.2的httpd配置中需要將PHP設置為可識別的腳本類型。

在httpd.conf中配置

LoadModulephp5_module"c:/php/php5apache2_2.dll"

AddTypeapplication/x-httpd-php.php

AddTypeapplication/x-httpd-php.phtml

PHPIniDir"c:/php"

然后重啟apache2.2

http://localhost下載index.html是因為默認目錄index使用的index.html

在httpd.conf中修改

DirectoryIndexindex.html變為下面內容

DirectoryIndexindex.phpindex.html問:apache的用途是什么?答:apache是服務器,作用就是接受用戶的請求,比如我們登陸某個網站,瀏覽器就向服務器發送請求,apache接受請求并存取數據,然后返給用戶。

php只是一個程序,他接受php腳本進行處理,然后返回數據。返回的數據傳給apache服務器。

他們的關系就像經理接受客服的需求,然后安排給公司內部人員處理,內部人員處理好后,將東西交給經理,經理再給用戶。apache就是協調各類數據的C:/WWW/APACHE2/htdocs/a_com問:Apache中怎么修改默認站點目錄?答:昨天志明嘗試更改了Apache的默認網站根目錄文件夾,發現居然網頁顯示不出來。從理論上來說,是可以更改的,由于本人從未有過如此想法,當時就未作過多探索。剛才,在進入文件夾時突然記起這個問題來,就順便實現了一下,打開Apache的配置文件httpd.conf找到了<DirectoryD:/Apache/htdocs改為<DirectoryE:/htdocs,用phpinfo();測試了一下,發現是網站拒絕訪問,由于原來我用IIS的緣故,很自然想到了是文件目錄權限不足的問題,可是更改了文件目錄權限后,問題絲毫沒有得到解決。一、修改Apache的默認站點目錄ApacheHTTPServer安裝好后,默認的站點目錄位于其安裝目錄下的htdocs文件夾內,默認首頁是該文件夾的index.html文件。比如,我的Apache是安裝在C:/wamp/bin/apache/Apache2.2.21內,那么我的Apache的完整的默認站點目錄地址就是C:/wamp/bin/apache/Apache2.2.21/htdocs/,默認首頁就是C:/wamp/bin/apache/Apache2.2.21/htdocs/index.html。很多時候,不管是學習、測試,還是想真正的搭建自己的站點,我們可能并不想把自己的網站放在Apache默認的站點目錄下,這時,本節的知識將會幫助你解決這個問題。在httpd.conf找到DocumentRootD:/Apache/htdocs,我把這行改為DocumentRootE:/htdocs即可。修改方法:1、到Apache的安裝目錄下找到conf文件夾,該文件夾內會httpd.conf這樣一個文本文檔,它是Apache的配置文件,負責指揮Apache的運行。2、雙擊打開httpd.conf這個文本文檔,按下鍵盤上的Ctrl+F組合鍵查找DocumentRoot(帶英文雙引號,見圖),查找出來之后(僅有一處),將字符串DocumentRoot后面雙引號內的字符串修改為自己想要設定的網站目錄。如:默認為DocumentRootC:/wamp/bin/apache/Apache2.2.21/htdocs,現修改成DocumentRootD:/Apache3、完成上述第2步之后,暫不要關閉httpd.conf文件,繼續查找,查找<Directory(帶英文雙引號,見圖3),查找到<Directory之后,將第一個Directory字符串后面雙引號內的字符串修改為自己想要設定的網站目錄。如:默認為<DirectoryC:/wamp/bin/apache/Apache2.2.21/htdocs,現修改成<DirectoryD:/Apache4、同時按下鍵盤上的Ctrl+S組合鍵保存上述修改,一定記得要停止(STOP)一次Apache服務然后再啟動(START),使剛剛的修改生效。綜上所述,更改Apache默認網站根目錄只需更改以下兩個地方即可!1.找到DocumentRootD:/Apache/htdocs將D:/Apache/htdocs改為你自定義的網站目錄;2.找到<DirectoryD:/Apache/htdocs將D:/Apache/htdocs改為你自定義的網站目錄。問:局域網訪問apache?我和另外一臺機子在局域網內

我要訪問他機子上的項目

他修改了httpd文件,防火墻的例外也做了,路由上的映射也做了

但我訪問他(域名+端口,IP+端口都試過,非80端口)還是報403錯誤

請教高人指點一下啊~~~~~~~~謝謝他的是server03我的是win7答:403是應用錯誤不是網絡問題。讓他去檢查他的應用/系統是不是正常,可以讓他試試本機訪問。

403-禁止訪問:IIS定義了許多不同的403錯誤,它們指明更為具體的錯誤原因:·403.1-執行訪問被禁止。

·403.2-讀訪問被禁止。

·403.3-寫訪問被禁止。

·403.4-要求SSL。

·403.5-要求SSL128。

·403.6-IP地址被拒絕。

·403.7-要求客戶端證書。

·403.8-站點訪問被拒絕。

·403.9-用戶數過多。

·403.10-配置無效。

·403.11-密碼更改。

·403.12-拒絕訪問映射表。

·403.13-客戶端證書被吊銷。

·403.14-拒絕目錄列表。

·403.15-超出客戶端訪問許可。

·403.16-客戶端證書不受信任或無效。

·403.17-客戶端證書已過期或尚未生效。

·403.18-在當前的應用程序池中不能執行所請求的URL。這個錯誤代碼為IIS6.0所專用。

·403.19-不能為這個應用程序池中的客戶端執行CGI。這個錯誤代碼為IIS6.0所專用。

·403.20-Passport登錄失敗。這個錯誤代碼為IIS6.0所專用。收藏查看我的收藏5863有用+11349php(PHP開發)編輯PHP(外文名:HypertextPreprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,易于學習,使用廣泛,主要適用于Web開發領域。中文名超文本預處理器外文名HypertextPreprocessor編程范型面向對象、命令式編程設計者RasmusLerdorf維

護ThePHPGroup最新版本PHP5.6.0(28Aug2014)操作系統windows/linux/Mac跨平臺外語縮寫PHP目錄1語言解析2發展3開發工具4特性5優勢?開放源代碼?免費性?快捷性?跨平臺性強?效率高?圖像處理?面向對象?專業專注6技術應用7參考手冊8版本區別?選擇版本?VC6與VC9?TS和NTS?查看版本9PHP310PHP4?簡介?優越性11PHP5?新對象模式?異常處理?命名空間?加密12版本6設想13環境配置?Windows下?安裝過程?UNIX下14其他方面?相關語法及概念?模板引擎?框架介紹thinkphp1語言解析\o"編輯本段"編輯[1]

PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯后代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。2發展\o"編輯本段"編輯\o"查看圖片"

PHP安裝PHP原始為PersonalHomePage的縮寫,已經正式更名為"PHP:HypertextPreprocessor"。注意不是“HypertextPreprocessor”的縮寫,這種將名稱放到定義中的寫法被稱作遞歸縮寫。PHP于1994年由RasmusLerdorf創建,剛剛開始是RasmusLerdorf為了要維護個人網頁而制作的一個簡單的用Perl語言編寫的程序。這些工具程序用來顯示RasmusLerdorf的個人履歷,以及統計網頁流量。后來又用C語言重新編寫,包括可以訪問數據庫。他將這些程序和一些表單直譯器整合起來,稱為PHP/FI。PHP/FI可以和數據庫連接,產生簡單的動態網頁程序。在1995年以PersonalHomePageTools(PHPTools)開始對外發表第一個版本,Lerdorf寫了一些介紹此程序的文檔。并且發布了PHP1.0!在這的版本中,提供了訪客留言本、訪客計數器等簡單的功能。以后越來越多的網站使用了PHP,并且強烈要求增加一些特性。比如循環語句和數組變量等等;在新的成員加入開發行列之后,RasmusLerdorf在1995年6月8日將PHP/FI公開發布,希望可以透過社群來加速程序開發與尋找錯誤。這個發布的版本命名為PHP2,已經有PHP的一些雛型,像是類似Perl的變量命名方式、表單處理功能、以及嵌入到HTML中執行的能力。程序語法上也類似Perl,有較多的限制,不過更簡單、更有彈性。PHP/FI加入了對MySQL的支持,從此建立了PHP在動態網頁開發上的地位。到了1996年底,有15000個網站使用PHP/FI。\o"查看圖片"

ISAPI篩選器在1997年,任職于TechnionIIT公司的兩個以色列程序設計師:ZeevSuraski和AndiGutmans,重寫了PHP的剖析器,成為PHP3的基礎。而PHP也在這個時候改稱為PHP:HypertextPreprocessor.[5]。經過幾個月測試,開發團隊在1997年11月發布了PHP/FI2。隨后就開始PHP3的開放測試,最后在1998年6月正式發布PHP3。ZeevSuraski和AndiGutmans在PHP3發布后開始改寫PHP的核心,這個在1999年發布的剖析器稱為ZendEngine[7],他們也在以色列的RamatGan成立了ZendTechnologies來管理PHP的開發。在2000年5月22日,以ZendEngine1.0為基礎的PHP4正式發布,2004年7月13日則發布了PHP5,PHP5則使用了第二代的ZendEngine[5]。PHP包含了許多新特色,像是強化的面向對象功能、引入PDO(PHPDataObjects,一個存取數據庫的延伸函數庫)、以及許多效能上的增強。PHP4已經不會繼續\o"查看圖片"

PHP更新,以鼓勵用戶轉移到PHP5。2008年PHP5成為了PHP唯一的有在開發的PHP版本。將來的PHP5.3將會加入Latestaticbinding和一些其他的功能強化。PHP6的開發也正在進行中,主要的改進有移除register_globals、magicquotes和Safemode的功能。PHP最新穩定版本:5.4.30(2013.6.26)PHP最新發布的正式版本:5.5.14(2014.6.24)PHP最新測試版本:5.6.0RC2(2014.6.03)2013年6月20日,PHP開發團隊自豪地宣布立即推出PHP5.5.0。此版本包含了大量的新功能和bug修復。需要開發者特別注意的一點是不再支持WindowsXP和2003系統。3開發工具\o"編輯本段"編輯集成開發環境是一種集成了軟件開發過程中所需主要工具的集成開發環境,其功能包括但不僅限于代碼高亮、代碼補全、調試、構建、版本控制等。一些常見的PHPIDEs如下:ZendStudio:商業版,Zend官方出品,基于eclipseEclipsewithPDT:免費Coda:商業版,針對Mac用戶NetBeans:免費,功能強大PHPStorm:商業版AptanaStudio:免費PhpEd:商業版KomodoIDE/Edit:IDE為商業版,Edit可免費使用AdobeDreamweaver:商業版除去集成開發環境,具備代碼高亮功能的常見文本編輯器因其輕巧靈活也常被選作開發工具,例如:Notepad++、Editplus、SublimeText、Everedit(國人開發)等等。4特性\o"編輯本段"編輯PHP的特性包括:1.PHP獨特的語法混合了C、Java、Perl以及PHP自創新的語法。2.PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。3.PHP支持幾乎所有流行的數據庫以及操作系統。4.最重要的是PHP可以用C、C++進行程序的擴展!5優勢\o"編輯本段"編輯開放源代碼所有的PHP源代碼事實上都可以得到。免費性和其它技術相比,PHP本身免費且是開源代碼。快捷性程序開發快,運行快,技術本身學習快。嵌入于HTML:因為PHP可以被嵌入于HTML語言,它相對于其他語言。編輯簡單,實用性強,更適合初學者??缙脚_性強由于PHP是運行在服務器端的腳本,可以運行在UNIX、LINUX、WINDOWS、MacOS下。[2]

效率高PHP消耗相當少的系統資源。圖像處理用PHP動態創建圖像,PHP圖像處理默認使用GD2。且也可以配置為使用imagemagick進行圖像處理。面向對象在php4,php5中,面向對象方面都有了很大的改進,php完全可以用來開發大型商業程序。專業專注PHP支持腳本語言為主,同為類C語言。6技術應用\o"編輯本段"編輯偽靜態靜態頁面生成數據庫緩存過程緩存div+cssw3c標準大負荷分布式flex桌面程序應用(不擅長)支持MVC模型Smarty模版引擎7參考手冊\o"編輯本段"編輯函數完整參考手冊:[1]

序號分類描述1Array函數2Calendar函數日歷擴展包含了簡化不同日歷格式間的轉換的函數。3Date/Time函數Date/Time函數用于從PHP腳本運行的服務器上獲取日期和時間并進行格式化。4Directory函數Directory函數用于獲得關于目錄及其內容的信息。5Error/Logging函數Error/Logging函數用于對錯誤進行處理和記錄。6Filesystem函數Filesystem函數用于訪問和操作文件系統。7Filter函數PHP過濾器用于對來自非安全來源的數據(比如用戶輸入)進行驗證和過濾。8FTP函數FTP函數通過文件傳輸協議(FTP)提供對文件服務器的客戶端訪問。9HTTP函數HTTP函數用于對由Web服務器發送到瀏覽器的信息進行操作。10Libxml函數Libxml函數和常量與SimpleXML、XSLT以及DOM函數一起使用。11Mail函數mail()函數用于從腳本中直接發送電子郵件。12Math函數Math函數能處理integer和float范圍內的值。13雜項函數我們把不屬于其他類別的函數歸納到雜項函數類別。14MySQLi函數MySQLi函數用于訪問MySQL數據庫服務器。15SimpleXML函數SimpleXML擴展提供了一種獲取XML元素的名稱和文本的簡單方式。16String函數17XMLParser函數XMLParser函數允許您創建XML解析器,并為XML事件定義句柄。18ZipFile函數ZipFile函數允許您讀取壓縮文件。8版本區別\o"編輯本段"編輯[3]

PHP版本VC6與VC9、ThreadSafe與None-ThreadSafe等的區別PHP的大版本主要分三支:PHP4/PHP5/PHP6其中,PHP4由于太古老、對QQ支持不力已基本被淘汰,請無視PHP4。PHP6由于基本沒有生產線上的應用,還基本只是一款概念產品,很多功能已在PHP5.3.3上實現,所以也不詳述,請無視PHP6。PHP5的版本主要分四支:PHP5.2之前的版本、PHP5.2.X、PHP5.3和日前發布的PHP5.4。選擇版本PHP5.2之前的版本不值得考慮,因為某些功能缺陷或者BUG。PHP5.4還處于Beta試用的版本號,非穩定版本,請無視PHP5.4。主流PHP程序對PHP5.2.X的兼容性最好,而每次版本號的升級帶來的都是安全性和穩定性的改善,所以宜挑選最新的版本。目前PHP5.2系列最新的是PHP5.2.17。而如果產品是自己開發自己使用,PHP5.3在某些方面更具優勢,在穩定性上更勝一籌,增加了很多PHP5.2所不具有的功能,比如內置php-fpm、更完善的垃圾回收算法、命名空間的引入、sqlite3的支持等等,是部署項目值得考慮的版本,強烈推薦PHP5.3.3。除了版本號的不同,同一版本號的PHP版本也有區別,并且在選擇PHP擴展的時候需要注意。install版:可執行的MSI格式安裝包。ZIP版:解壓即可用。和install版無區別。建議選擇ZIP版。DEBUG版:最終用戶無需關心。VC6與VC9如果你在apache1或者apache2下使用PHP,你應該選擇VC6的版本如果你在IIS下使用PHP應該選擇VC9的版本,VC6的版本使用visualstudio6編譯,VC9使用VisualStudio2008編譯,并且改進了性能和穩定性。VC9版本的PHP需要你安裝Microsoft2008C++Runtime。不要在apache下使用VC9的版本。TS和NTSTS指ThreadSafety,即線程安全,一般在IIS以ISAPI方式加載的時候選擇這個版本。NTS即None-ThreadSafe,一般以fastcgi方式運行的時候選擇這個版本,具有更好的性能。從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由于與Linux/Unix系統是采用多進程的工作方式不同的是Windows系統是采用多線程的工作方式。如果在IIS下以CGI方式運行PHP會非常慢,這是由于CGI模式是建立在多進程的基礎之上的,而非多線程。一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的PHP擴展是以Linux/Unix的多進程思想來開發的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。因此在IIS下CGI模式才是PHP運行的最安全方式,但CGI模式對于每個HTTP請求都需要重新加載和卸載整個PHP環境,其消耗是巨大的。為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進程重復利用而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個進程同時執行。這樣既解決了CGI進程模式消耗太大的問題,又利用上了CGI進程模式不存在線程安全問題的優勢。因此,如果是使用ISAPI的方式來運行PHP就必須用ThreadSafe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用NoneThreadSafe(NTS,非線程安全)的版本能夠更好的提高效率。查看版本一個很簡單的辦法就是phpinfo();ThreadSafetydisabled是NTS,enabled是TSConfigureCommand看到VC98字樣的是VC6,Compiler標明MSVC9(VisualC++2008)的是VC9在WIN7下:IIS7+NTS+FastCGI+vc9是最佳搭檔或者apache+fastcgi+nts+vc6。在WINXP下:Apache+TS+Apachemodule+vc6最合適的搭檔。9PHP3\o"編輯本段"編輯\o"查看圖片"

PHPPHP3跟Apache服務器的緊密結合的特性;加上它可以不斷的更新及加入新的功能,而且幾乎支持所有主流與非主流數據庫。再以它能高速的執行效率,使得PHP在1999年中的使用站點已經超過了150000。加上它的源代碼完全公開,在OpenSource意識抬頭的今天,它更是這方面的中流砥

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論