Oracle(甲骨文)是世界上最為流行的關(guān)系數(shù)據(jù)庫。它是大公司推崇的工業(yè)化的強有力的引擎。我們先看看其相關(guān)的函數(shù):
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),石棉企業(yè)網(wǎng)站建設(shè),石棉品牌網(wǎng)站建設(shè),網(wǎng)站定制,石棉網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,石棉網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
(1)integer
ora_logon(string
user
,
string
password)
開始對一個Oracle數(shù)據(jù)庫服務(wù)器的連接。
(2)integer
ora_open(integer
connection)
打開給出的連接的游標(biāo)。
(3)integer
ora_do(integer
connection,
string
query)
在給出的連接上執(zhí)行查詢。PHP生成一個指示器,解析查詢,并執(zhí)行之。
(4)integer
ora_parse(integer
cursor,
string
query)
解析一個查詢并準(zhǔn)備好執(zhí)行。
(5)boolean
ora_exec(integer
cursor)
執(zhí)行一個先前由ora_parse函數(shù)解析過的查詢。
(6)boolean
ora_fetch(integer
cursor)
此函數(shù)會使得一個執(zhí)行過的查詢中的行被取到指示器中。這使得您可以調(diào)用ora_getcolumn函數(shù)。
(7)string
ora_getcolumn(integer
cursor,
integer
column)
返回當(dāng)前的值。列由零開始的數(shù)字索引。
(8)boolean
ora_logoff(integer
connection)
斷開對數(shù)據(jù)庫服務(wù)器的鏈接。
以下是向ORACLE數(shù)據(jù)庫插入數(shù)據(jù)的示例程序:
html
headtitle向ORACLE數(shù)據(jù)庫中插入數(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è)置兩個環(huán)境變量ORACLE_HOME,ORACLE_SID
putenv("ORACLE_HOME=/oracle/app/oracle/product/8.0.4");
putenv("ORACLE_SID=ora8");
//設(shè)置網(wǎng)頁顯示中文
putenv("NLS_LANG=Simplified_Chinese.zhs16cgb231280");
if($connection=ora_logon("scott","tiger"))
{
//庫表test有ID,name,Description三項
$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
在mysql數(shù)據(jù)庫中,創(chuàng)建一個test數(shù)據(jù)庫,用于測試。
請點擊輸入圖片描述
新建一個php文件,命名為test.php,用于講解php如何選擇要操作的數(shù)據(jù)庫。
請點擊輸入圖片描述
在test.php文件中,使用header()方法將頁面的編碼格式設(shè)置為utf-8,避免輸出中文亂碼。
請點擊輸入圖片描述
在test.php文件中,使用mysql_connect()函數(shù),通過賬號和密碼創(chuàng)建一個數(shù)據(jù)庫的連接。
請點擊輸入圖片描述
在test.php文件中,再使用mysql_select_db()函數(shù)選擇要操作的數(shù)據(jù)庫test,選擇數(shù)據(jù)庫成功,則返回true,否則,返回false。最后,通過if語句判斷結(jié)果。
請點擊輸入圖片描述
在瀏覽器打開test.php文件,查看結(jié)果。
請點擊輸入圖片描述
END
總結(jié):
1、創(chuàng)建一個test數(shù)據(jù)庫。
2、使用mysql_connect()函數(shù)創(chuàng)建一個數(shù)據(jù)庫的連接。
3、再使用mysql_select_db()函數(shù)選擇要操作的數(shù)據(jù)庫test,并通過if語句判斷結(jié)果。
1、用 mysql_connect 的方法,PHP7會報致命錯誤
$conn= mysql_connect('localhost','xueyanxiang','xueyanxiang');
Fatal error : Uncaught Error: Call to undefined function mysql_connect() in /Users/xueyanxiang/work/test/xue.php:31 Stack trace: #0 /Users/xueyanxiang/work/test/xue.php(119): xue-run() #1 {main} thrown in? /Users/xueyanxiang/work/test/xue.php ?on line? 31
原因是:
PHP5中使用mysql_connect()函數(shù)進行連接,但實際上,PHP5.5開始,MySQL就不推薦使用了,屬于廢棄函數(shù)
PHP7中貌似已經(jīng)徹底不支持了,根據(jù)官網(wǎng)說明,取而代之的是如下兩個:
本擴展自 PHP 5.5.0 起已廢棄,并在將來會被移除。應(yīng)使用?MySQLi?或?PDO_MySQL?擴展來替換之。參見?MySQL:選擇
API?指南以及相關(guān) FAQ?以獲取更多信息。用以替代本函數(shù)的有:
mysqli_connect()
PDO::__construct()
使用時,不要在使用mysql_connect了,可以換用mysqli_connect(),用法基本類似吧,據(jù)說是面向?qū)ο蟮膸臁?/p>
php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll這個拓展了。
2、可以使用mysqli,對象化,方法名與被廢棄的類似
$conn= mysqli_connect('localhost','xueyanxiang','xueyanxiang');
3、PDO工具,推薦使用
$dbh= "mysql:host=localhost;dbname=test";
$db= new PDO($dbh,'xueyanxiang','xueyanxiang');
$objQuery= $db-query("select * from user;");
$res= $objQuery-fetchAll(PDO::FETCH_ASSOC);
不填寫參數(shù)的話,默認是關(guān)聯(lián)和索引都有,如下圖
?php
mysql_connect("localhost","root","123456") //填寫mysql用戶名和密碼
or die("Could not connect to MySQL server!");
mysql_select_db("phpcms") //數(shù)據(jù)庫名
or die("Could not select database!");
mysql_query('set names "gbk"'); //數(shù)據(jù)庫內(nèi)數(shù)據(jù)的編碼
?
直接調(diào)用就行了,不過可能你需要引用文件,以下是例子
//文件conn.php,用于連接數(shù)據(jù)庫
class DB_Conn {
}
//文件 db.php, 用于數(shù)據(jù)庫操作,這個類必然需要使用數(shù)據(jù)庫連接對象,因此引用conn.php
require_once conn.php;
class DB {
}
//文件user.php
require_once 'db.php';
class User {
public function getUserById($id) {
$conn = new Db_Conn();
$db = new Db();
}
}
以上只是示意,如果文件不在一個目錄下記得修改路徑。而且,一般來說數(shù)據(jù)庫對象應(yīng)該包含連接數(shù)據(jù)庫和數(shù)據(jù)操作的全部功能,不需要分別寫在兩個類里面。我覺得你對面向?qū)ο蟮睦斫膺€很淺薄,需要進一步累積經(jīng)驗。
我說一下幾個步驟:
1、首先你得有一個存儲這些數(shù)據(jù)的數(shù)據(jù)庫表,比如數(shù)據(jù)庫表的結(jié)構(gòu)是這樣的。
數(shù)據(jù)庫表名為:user
字段:編號(id),姓名(name),手機(mobile),產(chǎn)品名稱(productName) 主鍵為id
2、實現(xiàn)你需要的功能:
第一步:你需要連接數(shù)據(jù)庫,有一個連接數(shù)據(jù)庫的文件:conn.php。內(nèi)容如下:
// 我假設(shè)你的數(shù)據(jù)庫是mysql的,假設(shè)你的數(shù)據(jù)庫用戶名為root,密碼為123456,根據(jù)你數(shù)據(jù)庫的實際情況改寫成你的。數(shù)據(jù)庫名稱假設(shè)為db_889888658
?php
$conn=mysql_connect("localhost","root","123456") or die("數(shù)據(jù)庫連接失敗,請檢查用戶名或密碼");
mysql_select_db("db_889888658",$conn);
mysql_query("SET NAMES 'gb2312'");
?
第二步:你需要一個添加數(shù)據(jù)的表單,就相當(dāng)于一個注冊或添加數(shù)據(jù)的頁面。如文件為:add.html內(nèi)容如下:
form action="reg.php" method="post"
input type="text" name="name"br/
input type="text" name="mobile"br/
input type="text" name="productName"/br
input type="submit" name="submit" value="添加數(shù)據(jù)"
/form
第三步:寫一個處理你表單提交的數(shù)據(jù)的文件reg.php。內(nèi)容如下:
?php
include "conn.php";
if(isset($_POST["submit"])){
$name=$_POST["name"];
$mobile=$_POST["mobile"];
$productName=$_POST["productName"];
$sql="INSERT INTO 'user'(id,name,mobile,productName) VALUES (NULL,$name,$mobile,$productName)";
$query=mysql_query($sql);
$num=mysql_affected_rows($conn);
if($num=1){
echo "scriptalert('數(shù)據(jù)添加成功');location.href='add.html';/script";
}else{
echo "scriptalert('數(shù)據(jù)添加失敗');history.back();/script";
}
}
?
第四步,第三步已經(jīng)實現(xiàn)你說的第一個功能。下面說一下你的第二個功能。寫一個表單,輸入你要查詢的手機號,點擊“查詢”按鈕查詢你想要的字段。
?php
if($_POST["submit"]){
$mobile=$_POST["mobile"];
if(!empty($mobile)){
include "conn.php";
$sql="SELECT * FROM 'user' WHERE 'mobile'='$mobile'";
$query=mysql_query($sql);
while($rs=mysql_fetch_array($query)){
$str="查詢結(jié)果:br/";
$str.="用戶名:".$rs["name"]."?";
$str.="產(chǎn)品名:".$rs["name"]."?";
}
echo "您查詢的手機號為".$mobile."的數(shù)據(jù)信息如下:br/";
echo $str;
}else{
echo "請輸入手機號";
}
}
?
form action="" method="post"
請輸入您要查詢的手機號:input type="text" name="mobile" input type="submit" name="submit" value="查詢"
/form