PHP訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù):
成都創(chuàng)新互聯(lián)專(zhuān)注于耀州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供耀州營(yíng)銷(xiāo)型網(wǎng)站建設(shè),耀州網(wǎng)站制作、耀州網(wǎng)頁(yè)設(shè)計(jì)、耀州網(wǎng)站官網(wǎng)定制、小程序開(kāi)發(fā)服務(wù),打造耀州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供耀州網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
因?yàn)檫B接數(shù)據(jù)庫(kù)需要較長(zhǎng)的時(shí)間和較大的資褲稿源源開(kāi)敬哪銷(xiāo),所以如果在多個(gè)網(wǎng)頁(yè)中都要頻繁地訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),則可以建立與數(shù)據(jù)庫(kù)的持續(xù)連接。即調(diào)胡態(tài)用mysql_pconnect()代替mysql_connect()。
基本步驟:
1.連接服務(wù)器:mysql_connect();
2.選擇數(shù)據(jù)庫(kù):mysql_select_db();
3.執(zhí)行SQL語(yǔ)句:mysql_query();
查詢(xún):select
顯示:show
插入:insert into
更新:update
刪除:delete
4.關(guān)閉結(jié)果集:mysql_free_result($result);
5.關(guān)閉數(shù)據(jù)庫(kù):mysql_close($link);
1、用 mysql_connect 的方法,PHP7會(huì)報(bào)致命錯(cuò)誤
$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ù)塌信進(jìn)行連接,但團(tuán)蠢輪實(shí)際上,PHP5.5開(kāi)始,MySQL就不推薦使用了,屬于廢棄函數(shù)
PHP7中貌似已經(jīng)徹底不支持了,根據(jù)官網(wǎng)說(shuō)明,取而代之的是如下兩個(gè):
本擴(kuò)展自 PHP 5.5.0 起已廢棄,并在將來(lái)會(huì)被移除。應(yīng)使用?MySQLi?或?PDO_MySQL?擴(kuò)展來(lái)替換之。參見(jiàn)?MySQL:選擇
API?指南以及相關(guān) FAQ?以獲取更多信息。用以替代本函數(shù)的有:
mysqli_connect()
PDO::__construct()
使用時(shí),不要在使用mysql_connect了,可以換用mysqli_connect(),用法基本類(lèi)似吧,據(jù)說(shuō)是面向?qū)ο蟮膸?kù)。
php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll這個(gè)拓展了。檔差
2、可以使用mysqli,對(duì)象化,方法名與被廢棄的類(lèi)似
$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);
不填寫(xiě)參數(shù)的話(huà),默認(rèn)是關(guān)聯(lián)和索引都有,如下圖
用ASP連接各種數(shù)據(jù)庫(kù)的方法
一、ASP的對(duì)象存取數(shù)據(jù)庫(kù)方法
在ASP中,用來(lái)存取數(shù)據(jù)庫(kù)的對(duì)象統(tǒng)稱(chēng)ADO(Active Data Objects),主要含有三種對(duì)象:Connection、Recordset 、Command
Connection:負(fù)責(zé)打開(kāi)或連接數(shù)據(jù)
Recordset:負(fù)責(zé)存取數(shù)據(jù)表
Command:負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)執(zhí)行行動(dòng)查詢(xún)命令
二、連接各數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序
連接各數(shù)據(jù)庫(kù)可以使用驅(qū)動(dòng)程序,也可以使用數(shù)據(jù)源,不洞孫過(guò)我建議大家使用驅(qū)動(dòng)程序,因?yàn)槭褂抿?qū)動(dòng)程序非常方便、簡(jiǎn)單,而使用數(shù)據(jù)源比較麻煩。
ODBC鏈接
適合數(shù)據(jù)庫(kù)類(lèi)型 鏈接方式
access "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"
dBase "Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"
Oracle "Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"
MSSQL server "Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"
MS text "Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"
Visual Foxpro "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"
MySQL "Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"
OLEDB鏈接
適合的數(shù)據(jù)庫(kù)類(lèi)型 鏈接方式
access "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;"
Oracle "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"
MS SQL Server "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;"
MS text "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties′text;FMT=Delimited′"
而我們?cè)谝话闱闆r下使用Access的數(shù)據(jù)庫(kù)比較多,在這里我建議大家連接Access數(shù)據(jù)庫(kù)使用下面的方法:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" "data source = " server.mappath("../db/bbs.mdb")
其中../db/bbs.mdb是你的數(shù)據(jù)庫(kù)存放的相對(duì)路徑!緩悶如果你的數(shù)據(jù)庫(kù)和ASP文件在同一目錄下,你只納哪鏈要這樣寫(xiě)就可以了:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" "data source = " server.mappath("bbs.mdb")
有許多初學(xué)者在遇到數(shù)據(jù)庫(kù)連接時(shí)總是會(huì)出問(wèn)題,然而使用上面的驅(qū)動(dòng)程序只要你的數(shù)據(jù)庫(kù)路徑選對(duì)了就不會(huì)出問(wèn)題了。
php調(diào)用mysql步驟:1、連接MySQL數(shù)據(jù)庫(kù);2、選擇MySQL數(shù)據(jù)庫(kù);3、執(zhí)行SQL語(yǔ)句;4、關(guān)閉結(jié)果集;5、關(guān)閉MySQL服務(wù)器。
本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
PHP訪(fǎng)問(wèn)MYSQL數(shù)據(jù)庫(kù)的五個(gè)步驟詳解(圖)
數(shù)據(jù)庫(kù)在我們PHP日常開(kāi)發(fā)中是必須需要的,那么MYSQL數(shù)據(jù)庫(kù) 是一款很多程序員都喜愛(ài)的數(shù)據(jù)庫(kù),由于呢 MYSQL 是一個(gè)開(kāi)源的,帶一點(diǎn)半商業(yè)的,市場(chǎng)的占有率比宏櫻野較高,所以一直以來(lái)都被認(rèn)為是 PHP 的最佳搭檔,同時(shí) PHP 也具有很強(qiáng)大的數(shù)據(jù)庫(kù)支持能力,本篇主要講解 PHP訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù)的基本步驟。
PHP訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù)的基本步驟如圖所示:
.連接MySQL數(shù)據(jù)庫(kù)
使用 mysql_connect()函數(shù)建立與MySQL服務(wù)器的連接。有關(guān) mysql_connect()函數(shù)的使用,我們后面會(huì)有詳細(xì)的介紹。
2.選擇MySQL數(shù)據(jù)庫(kù)
使用 mysql_select_db()函數(shù)選擇MySQL數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)庫(kù)。并與數(shù)據(jù)庫(kù)建立連接,有關(guān)mysql_select_db()函數(shù)的使用,后面我們會(huì)有具體詳解。
3.執(zhí)行 SQL 語(yǔ)句蔽喊
在選擇數(shù)據(jù)庫(kù)中使用 mysql_query()函數(shù)執(zhí)行 SQL語(yǔ)句,對(duì)數(shù)據(jù)的操作方式主要包括 5種方式,下面我們分別進(jìn)行介紹。查詢(xún)數(shù)據(jù):使用select 語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)的查詢(xún)功能。
顯示數(shù)據(jù):使用select 語(yǔ)句顯示數(shù)據(jù)的查詢(xún)結(jié)果。
插入數(shù)據(jù):使用insert into 語(yǔ)句向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)。
更新數(shù)據(jù):使用update 語(yǔ)句更新數(shù)據(jù)庫(kù)中的記錄。
刪除數(shù)據(jù):使用 delete語(yǔ)句刪除數(shù)據(jù)庫(kù)中的記錄!
mysql_query()函數(shù)的具體使用后面有具體介紹~
4.關(guān)閉結(jié)果集
數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉結(jié)果集,以釋放系統(tǒng)資源,語(yǔ)法格式如下:mysql_free_result($result);
技巧:
如果在多個(gè)網(wǎng)頁(yè)中都要頻繁進(jìn)行數(shù)據(jù)庫(kù)訪(fǎng)問(wèn),那么可以建立與數(shù)據(jù)庫(kù)服務(wù)器的持續(xù)連接來(lái)提高效率,因?yàn)槊看闻c數(shù)據(jù)庫(kù)服務(wù)器的連接需要較長(zhǎng)的時(shí)間和交大的資源開(kāi)銷(xiāo),持續(xù)的連接相對(duì)來(lái)說(shuō)會(huì)更有效率,建立持續(xù)連接的方法就是在數(shù)據(jù)庫(kù)間接時(shí),調(diào)用函數(shù) mysql_pconnect()代替mysql_connect函數(shù)。建立的持續(xù)連接在本程序結(jié)束時(shí),不需要頌晌調(diào)用 mysql_colse()來(lái)關(guān)閉與數(shù)據(jù)庫(kù)服務(wù)器的連接。下次程序在此執(zhí)行 mysql_pconnect()函數(shù)時(shí),系統(tǒng)自動(dòng)直接返回已經(jīng)建立的持續(xù)連接ID號(hào),而不再去真的連接數(shù)據(jù)庫(kù)。
5.關(guān)閉MySQL服務(wù)器
沒(méi)使用一次 mysql_connect()或者mysql_query()函數(shù),都會(huì)消耗系統(tǒng)資源,再少量用戶(hù)放完 web 網(wǎng)站時(shí)問(wèn)題還不大,但如果用戶(hù)連接超過(guò)一定數(shù)量時(shí),就會(huì)造成系統(tǒng)性能下降,甚至是死機(jī),為了避免這種現(xiàn)象的發(fā)生,在完成數(shù)據(jù)庫(kù)的操作后,應(yīng)該使用 mysql_close()函數(shù)關(guān)閉與MYSQL服務(wù)器的連接,以節(jié)省系統(tǒng)資源。
語(yǔ)法格式如下:mysql_close($link);
說(shuō)明:
PHP 中與數(shù)據(jù)庫(kù)的連接是非持久連接,系統(tǒng)會(huì)自動(dòng)回收,一般不用設(shè)置關(guān)閉,但是如果一次性范湖的結(jié)果集比較大,或者網(wǎng)站訪(fǎng)問(wèn)量比價(jià)多,那么最好使用 mysql_close()函數(shù)手動(dòng)進(jìn)行釋放。
PHP訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù)的步驟就結(jié)束了,是不是很簡(jiǎn)單。
推薦學(xué)習(xí):《PHP視頻教程》
以上就是php調(diào)用mysql步驟的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!