Oracle(甲骨文)是世界上最為流行的關(guān)系數(shù)據(jù)庫(kù)。它是大公司推崇的工業(yè)化的強(qiáng)有力的引擎。我們先看看其相關(guān)的函數(shù):
創(chuàng)新互聯(lián)專注于龍沙網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供龍沙營(yíng)銷型網(wǎng)站建設(shè),龍沙網(wǎng)站制作、龍沙網(wǎng)頁(yè)設(shè)計(jì)、龍沙網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造龍沙網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供龍沙網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
(1)integer
ora_logon(string
user
,
string
password)
開始對(duì)一個(gè)Oracle數(shù)據(jù)庫(kù)服務(wù)器的連接。
(2)integer
ora_open(integer
connection)
打開給出的連接的游標(biāo)。
(3)integer
ora_do(integer
connection,
string
query)
在給出的連接上執(zhí)行查詢。PHP生成一個(gè)指示器,解析查詢,并執(zhí)行之。
(4)integer
ora_parse(integer
cursor,
string
query)
解析一個(gè)查詢并準(zhǔn)備好執(zhí)行。
(5)boolean
ora_exec(integer
cursor)
執(zhí)行一個(gè)先前由ora_parse函數(shù)解析過(guò)的查詢。
(6)boolean
ora_fetch(integer
cursor)
此函數(shù)會(huì)使得一個(gè)執(zhí)行過(guò)的查詢中的行被取到指示器中。這使得您可以調(diào)用ora_getcolumn函數(shù)。
(7)string
ora_getcolumn(integer
cursor,
integer
column)
返回當(dāng)前的值。列由零開始的數(shù)字索引。
(8)boolean
ora_logoff(integer
connection)
斷開對(duì)數(shù)據(jù)庫(kù)服務(wù)器的鏈接。
以下是向ORACLE數(shù)據(jù)庫(kù)插入數(shù)據(jù)的示例程序:
html
headtitle向ORACLE數(shù)據(jù)庫(kù)中插入數(shù)據(jù)/title/head
body
form
action="?echo
$PHP_SELF;?"
method="post"
table
border="1"
cellspacing="0"
cellpadding="0"
tr
thID/th
thname/th
thDescription/th
/tr
tr
tdinput
type="text"
name="name"
maxlength="50"
size="10"/td
tdinput
type="text"
name="email"
maxlength="255"
size="30"/td
tdinput
type="text"
name="Description"
maxlength="255"
size="50"/td
/tr
tr
align="center"
td
colspan="3"input
type="submit"
value="提交" input
type="reset"
value="重寫"/td
/tr
/table
/form
?
//先設(shè)置兩個(gè)環(huán)境變量ORACLE_HOME,ORACLE_SID
putenv("ORACLE_HOME=/oracle/app/oracle/product/8.0.4");
putenv("ORACLE_SID=ora8");
//設(shè)置網(wǎng)頁(yè)顯示中文
putenv("NLS_LANG=Simplified_Chinese.zhs16cgb231280");
if($connection=ora_logon("scott","tiger"))
{
//庫(kù)表test有ID,name,Description三項(xiàng)
$sql
=
'insert
into
test(ID,name,Description)
values
';
$sql
.=
'(''
.
$ID
.
'',''
.
$name
.
'',''.
$Description
.
'')';
if($cursor=ora_do($connect,$sql))
{
print("insert
finished!");
}
$query
=
'select
*
from
test';
if($cursor=ora_do($connect,$query))
{
ora_fetch($cursor);
$content0=ora_getcolumn($cursor,0);
$content1=ora_getcolumn($cursor,1);
$content2=ora_getcolumn($cursor,2);
print("$content0");
print("$content1");
print("$content2");
ora_close($cursor);
}
ora_logoff($connection);
}
?
/body
/html
區(qū)別是:
PHP采用pdo方式訪問(wèn)數(shù)據(jù)庫(kù)時(shí),您不必再使用再為它們封裝數(shù)據(jù)庫(kù)操作類,只需要使用PDO接口中的方法就可以對(duì)各種數(shù)據(jù)庫(kù)進(jìn)行操作。
以mysql為例
字段:userid,username,password,email
1.連接數(shù)據(jù)庫(kù):$conn=mysql_connect("localhost","username","password");
2.選擇數(shù)據(jù)庫(kù):$db=mysql_select_db("databaseName",$conn);
3.構(gòu)造sql語(yǔ)句:$sql="select * from userinfo";
4.執(zhí)行查詢:$result=mysql_query($sql);
5.讀取數(shù)據(jù):$row=mysql_fetch_query($result);
6.循環(huán)顯示讀取數(shù)據(jù):
while($row){
echo $row["username"];
echo $row["password"];
echo $row["email"];
……
$row=mysql_fetch_query($result);
}
在mysql數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)test數(shù)據(jù)庫(kù),用于測(cè)試。
請(qǐng)點(diǎn)擊輸入圖片描述
新建一個(gè)php文件,命名為test.php,用于講解php如何選擇要操作的數(shù)據(jù)庫(kù)。
請(qǐng)點(diǎn)擊輸入圖片描述
在test.php文件中,使用header()方法將頁(yè)面的編碼格式設(shè)置為utf-8,避免輸出中文亂碼。
請(qǐng)點(diǎn)擊輸入圖片描述
在test.php文件中,使用mysql_connect()函數(shù),通過(guò)賬號(hào)和密碼創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的連接。
請(qǐng)點(diǎn)擊輸入圖片描述
在test.php文件中,再使用mysql_select_db()函數(shù)選擇要操作的數(shù)據(jù)庫(kù)test,選擇數(shù)據(jù)庫(kù)成功,則返回true,否則,返回false。最后,通過(guò)if語(yǔ)句判斷結(jié)果。
請(qǐng)點(diǎn)擊輸入圖片描述
在瀏覽器打開test.php文件,查看結(jié)果。
請(qǐng)點(diǎn)擊輸入圖片描述
END
總結(jié):
1、創(chuàng)建一個(gè)test數(shù)據(jù)庫(kù)。
2、使用mysql_connect()函數(shù)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的連接。
3、再使用mysql_select_db()函數(shù)選擇要操作的數(shù)據(jù)庫(kù)test,并通過(guò)if語(yǔ)句判斷結(jié)果。
很多程序員都學(xué)習(xí)過(guò)如何使用 MySQL 或 MySQLi 擴(kuò)展訪問(wèn)數(shù)據(jù)庫(kù)。在 PHP 5.1 中,有一個(gè)更好的方法。 PHP Data Objects (PDO) 提供了很多預(yù)處理語(yǔ)句的方法,且使用對(duì)象將使你的工作更有成效!
PDO 介紹
“PDO – PHP Data Objects – 是一個(gè)對(duì)多種數(shù)據(jù)庫(kù)提供統(tǒng)一操作方法的數(shù)據(jù)庫(kù)訪問(wèn)層?!?/p>
它并不具備數(shù)據(jù)庫(kù)特有的語(yǔ)法,但它將使切換數(shù)據(jù)庫(kù)和平臺(tái)更加容易,多數(shù)情況下,只需要簡(jiǎn)單修改鏈接字符串。
這并非一篇完整教導(dǎo)如何使用SQL的教程。它重要為那些現(xiàn)今仍在使用 mysql 或 mysqli 擴(kuò)展的人,幫助他們躍至更具可移植性和強(qiáng)力的 PDO。
數(shù)據(jù)庫(kù)支持
此擴(kuò)展可以使用 PDO 驅(qū)動(dòng)編寫過(guò)的所有數(shù)據(jù)庫(kù)。在本文書寫時(shí),下面的數(shù)據(jù)庫(kù)支持已經(jīng)實(shí)現(xiàn):
PDO_DBLIB ( FreeTDS / Microsoft SQL Server / Sybase )
PDO_FIREBIRD ( Firebird/Interbase 6 )
PDO_IBM ( IBM DB2 )
PDO_INFORMIX ( IBM Informix Dynamic Server )
PDO_MYSQL ( MySQL 3.x/4.x/5.x )
PDO_OCI ( Oracle Call Interface )
PDO_ODBC ( ODBC v3 (IBM DB2, unixODBC and win32 ODBC) )
PDO_PGSQL ( PostgreSQL )
PDO_SQLITE ( SQLite 3 and SQLite 2 )
PDO_4D ( 4D )
你的系統(tǒng)不會(huì)也不必支持所有上面的驅(qū)動(dòng);下面是一個(gè)快速檢查所支持?jǐn)?shù)據(jù)庫(kù)的方法:
print_r(PDO::getAvailableDrivers());
連接
不同數(shù)據(jù)庫(kù)的連接方法可能稍有不同,下面是一些較為流行的數(shù)據(jù)庫(kù)連接方法。你將注意到,雖然數(shù)據(jù)庫(kù)類型不同,前三種數(shù)據(jù)庫(kù)的連接方式是相同的——而 SQLite 使用自己的語(yǔ)法。
PHP訪問(wèn)MySQL數(shù)據(jù)庫(kù):
因?yàn)檫B接數(shù)據(jù)庫(kù)需要較長(zhǎng)的時(shí)間和較大的資源開銷,所以如果在多個(gè)網(wǎng)頁(yè)中都要頻繁地訪問(wèn)數(shù)據(jù)庫(kù),則可以建立與數(shù)據(jù)庫(kù)的持續(xù)連接。即調(diào)用mysql_pconnect()代替mysql_connect()。
基本步驟:
1.連接服務(wù)器:mysql_connect();
2.選擇數(shù)據(jù)庫(kù):mysql_select_db();
3.執(zhí)行SQL語(yǔ)句:mysql_query();
查詢:select
顯示:show
插入:insert into
更新:update
刪除:delete
4.關(guān)閉結(jié)果集:mysql_free_result($result);
5.關(guān)閉數(shù)據(jù)庫(kù):mysql_close($link);