PHP鏈接數(shù)據(jù)庫(kù)有幾種方式

成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)公司把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
mysqli:
?php
$servername = "localhost";
$username = "username";
$password = "password";
// 創(chuàng)建連接
$conn = new mysqli($servername, $username, $password);
// 檢測(cè)連接
if ($conn-connect_error) {
die("連接失敗: " . $conn-connect_error);
}
echo "連接成功";
?
也可以使用PDO進(jìn)行鏈接,前提是你必須在php.ini中開(kāi)啟PDO:
?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
echo "連接成功";
}
catch(PDOException $e)
{
echo $e-getMessage();
}
?
建議使用PDO,功能更加強(qiáng)大,兼容各種數(shù)據(jù)庫(kù)
關(guān)于這個(gè)問(wèn)題,差不多就是這個(gè)樣子的了,你如果不明白,可以自己去后盾瞅瞅,我這些都是在后盾上學(xué)的,有空可以去看一下,就算不喜歡也沒(méi)關(guān)系啊,何樂(lè)而不為呢?
Oracle(甲骨文)是世界上最為流行的關(guān)系數(shù)據(jù)庫(kù)。它是大公司推崇的工業(yè)化的強(qiáng)有力的引擎。我們先看看其相關(guān)的函數(shù):
(1)integer
ora_logon(string
user
,
string
password)
開(kāi)始對(duì)一個(gè)Oracle數(shù)據(jù)庫(kù)服務(wù)器的連接。
(2)integer
ora_open(integer
connection)
打開(kāi)給出的連接的游標(biāo)。
(3)integer
ora_do(integer
connection,
string
query)
在給出的連接上執(zhí)行查詢(xún)。PHP生成一個(gè)指示器,解析查詢(xún),并執(zhí)行之。
(4)integer
ora_parse(integer
cursor,
string
query)
解析一個(gè)查詢(xún)并準(zhǔn)備好執(zhí)行。
(5)boolean
ora_exec(integer
cursor)
執(zhí)行一個(gè)先前由ora_parse函數(shù)解析過(guò)的查詢(xún)。
(6)boolean
ora_fetch(integer
cursor)
此函數(shù)會(huì)使得一個(gè)執(zhí)行過(guò)的查詢(xún)中的行被取到指示器中。這使得您可以調(diào)用ora_getcolumn函數(shù)。
(7)string
ora_getcolumn(integer
cursor,
integer
column)
返回當(dāng)前的值。列由零開(kāi)始的數(shù)字索引。
(8)boolean
ora_logoff(integer
connection)
斷開(kāi)對(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="重寫(xiě)"/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
//鏈接數(shù)據(jù)庫(kù)
$db=mysql_connect("localhost", "root","123456");
$sqlname="database";
mysql_select_db($sqlname,$db);
session_start();
mysql_query("SET NAMES 'utf8'",$db);
?
?
//創(chuàng)建結(jié)果集
$sql = "SELECT * FROM kecheng";
$result = mysql_query($sql);
$rs= mysql_fetch_array($result);
?
?
//修改數(shù)據(jù)
$sql = "UPDATE news SET title='1111' where news_id=1";
$result = mysql_query($sql);
?
?
//刪除數(shù)據(jù)
$sql = "DELETE from news where news_id=1";
$result = mysql_query($sql);
?
?
//添加數(shù)據(jù)
$sql = "INSERT INTO news (title,fenshu) VALUES ('a',1)"
$result = mysql_query($sql);
?
連接到一個(gè)?url?地址為localhost?、?端口為?3306?的mysql服務(wù)器上。mysql服務(wù)器的帳號(hào)是"root",密碼是"9999"。mysql?服務(wù)器上有一個(gè)數(shù)據(jù)庫(kù)?ok?,?數(shù)據(jù)庫(kù)里有一個(gè)表?abc。表?abc?一共為兩列,列名分別是?"id"?和?"name"?,將?abc?里的所有數(shù)據(jù)讀出來(lái)。
??
$dbh?=?@mysql_connect("localhost:3306","root","9999");?
/*?定義變量dbh?,?mysql_connect()函數(shù)的意思是連接mysql數(shù)據(jù)庫(kù),?"@"的意思是屏蔽報(bào)錯(cuò)?*/?
if(!$dbh){die("error");}?
/*?die()函數(shù)的意思是將括號(hào)里的字串送到瀏覽器并中斷PHP程式?(Script)。括號(hào)里的參數(shù)為欲送出的字串。?*/?
@mysql_select_db("ok",?$dbh);?
/*?選擇mysql服務(wù)器里的一個(gè)數(shù)據(jù)庫(kù),這里選的數(shù)據(jù)庫(kù)名為?ok?*/?
$q?=?"SELECT?*?FROM?abc";?
/*?定義變量q,?"SELECT?*?FROM?abc"是一個(gè)SQL語(yǔ)句,意思是讀取表abc中的數(shù)據(jù)?*/?
??
br?/?
!--=========?方法一?=========--?
br?/?
??
$rs?=?mysql_query($q,?$dbh);?
/*?定義變量?rs?,函數(shù)mysql_query()的意思是:送出?query?字串供?MySQL?做相關(guān)的處理或者執(zhí)行.由于php是從右往左執(zhí)行的,所以,rs的值是服務(wù)器運(yùn)行mysql_query()函數(shù)后返回的值?*/?
if(!$rs){die("Valid?result!");}?
echo?"table";?
echo?"trtdID/tdtdName/td/tr";?
while($row?=?mysql_fetch_row($rs))?echo?"trtd$row[0]/tdtd$row[1]/td/tr";?
/*?定義量變(數(shù)組)row,并利用while循環(huán),把數(shù)據(jù)一一寫(xiě)出來(lái).??
函數(shù)mysql_fetch_row()的意思是:將查詢(xún)結(jié)果$rs單列拆到陣列變數(shù)中.??
$row[0]?和?$row[1]?的位置可以換*/?
echo?"/table";?
??
br?/?
!--=========?方法二?=========--?
br?/?
??
$rs?=?mysql_query($q,?$dbh);?
while($row?=?mysql_fetch_object($rs))?echo?"$row-id?$row-name?br?/";?
/*?id和name可以換位置?*/?
??
br?/?
!--=========?方法三?=========--?
br?/?
??
$rs?=?mysql_query($q,?$dbh);?
while($row?=?mysql_fetch_array($rs))?echo?"$row[id]?$row[name]?br?/";?
/*?id和name可以換位置?*/?
??
!--=========?方法三最快?=========--?
??
@mysql_close($dbh);?
/*?關(guān)閉到mysql數(shù)據(jù)庫(kù)的連接?*/?
?
PHP連接mysql數(shù)據(jù)庫(kù)是PHP新手們必須要掌握的一項(xiàng)技能,只要掌握了PHP對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查等操作,就可以寫(xiě)出一些簡(jiǎn)單且常見(jiàn)的程序。如留言表,新聞頁(yè)等。本篇文章主要給大家詳細(xì)介紹PHP連接Mysql數(shù)據(jù)庫(kù)的兩種常用方法。
下面我們通過(guò)具體的代碼示例來(lái)給大家詳細(xì)介紹兩種PHP連接mysql數(shù)據(jù)庫(kù)的方法。
mysqli連接數(shù)據(jù)庫(kù)和pdo連接數(shù)據(jù)庫(kù)。
第一種方法:使用mysqli連接mysql數(shù)據(jù)庫(kù)
代碼實(shí)例如下:
?php
$host='127.0.0.1';
$user='root';
$password='root';
$dbName='php';
$link=new mysqli($host,$user,$password,$dbName);
if ($link-connect_error){
die("連接失敗:".$link-connect_error);
}
$sql="select * from admins";
$res=$link-query($sql);
$data=$res-fetch_all();
var_dump($data);
在經(jīng)過(guò)一系列的連接操作后,我們?cè)賱?chuàng)建一個(gè)sql語(yǔ)句對(duì)其中數(shù)據(jù)表進(jìn)行查詢(xún)檢驗(yàn)。在上述代碼中,我們要先創(chuàng)建一些需要用到的變量,如數(shù)據(jù)庫(kù)用戶名、數(shù)據(jù)庫(kù)名密碼等。然后我們用面向?qū)ο蟮姆绞竭B接了名為php的數(shù)據(jù)庫(kù)。再通過(guò)if條件語(yǔ)句,connect-error方法判斷PHP連接數(shù)據(jù)庫(kù)是否成功。
這里我們先登錄phpmyadmin看看是否存在php數(shù)據(jù)庫(kù),從下圖可以知道是存在php這個(gè)數(shù)據(jù)庫(kù)的。
最后通過(guò)瀏覽器訪問(wèn),結(jié)果如下圖:
從圖中可以得知,我們成功地連接了php數(shù)據(jù)庫(kù),并且能查詢(xún)出數(shù)據(jù)表信息。
第二種方法:使用PDO連接數(shù)據(jù)庫(kù)
代碼示例如下:
?php
$host='127.0.0.1';
$user='root';
$password='root';
$dbName='php';
$pdo=new PDO("mysql:host=$host;dbname=$dbName",$user,$password);
$sql="select * from admins";
$data=$pdo-query($sql)-fetch();
var_dump($data);
PHP連接Mysql步驟以上就是關(guān)于PHP連接數(shù)據(jù)庫(kù)查詢(xún)數(shù)據(jù)的兩種常用方法詳解,更多相關(guān)教程請(qǐng)?jiān)L問(wèn)php中文網(wǎng)mysql視頻教程,歡迎參考學(xué)習(xí)
在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)擊輸入圖片描述
在瀏覽器打開(kāi)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é)果。
文章名稱(chēng):php操作數(shù)據(jù)庫(kù)方法 php數(shù)據(jù)庫(kù)函數(shù)
新聞來(lái)源:http://chinadenli.net/article22/hgpjcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷(xiāo)、網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)