电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

PHP腳本數(shù)據(jù)庫功能詳解(上)

瀏覽:5日期:2023-12-15 14:06:30
在當(dāng)前互聯(lián)網(wǎng)發(fā)展迅速、電子商務(wù)網(wǎng)站層出不窮的形勢下,對網(wǎng)站開發(fā)的效率和質(zhì)量提出了越來越高的要求。 對于大型和結(jié)構(gòu)復(fù)雜、內(nèi)容繁多的網(wǎng)站,都要實(shí)現(xiàn)網(wǎng)站的動態(tài)化和方便的管理。數(shù)據(jù)管理離不開數(shù)據(jù)庫系統(tǒng)的支持。而衡量一種CGI語言的重要標(biāo)志,就是它對后臺數(shù)據(jù)庫的訪問能力、效率等。 而目前流行的PHP腳本語言,它的新特性給我們帶來了新的感覺。它支持以面向?qū)ο蟮姆绞竭M(jìn)行設(shè)計開發(fā)。同時,為了滿足網(wǎng)頁獨(dú)特的需要,用模板、XML支持等帶來了網(wǎng)站開發(fā)的新方法。在語言結(jié)構(gòu)上,PHP具有類似于C++語言的結(jié)構(gòu),并引入了類的概念,簡化了開發(fā)。 PHP還具有強(qiáng)大的數(shù)據(jù)庫支持能力。我們這里就通過實(shí)例,首先介紹PHP訪問數(shù)據(jù)庫的一般流程,然后通過文件的數(shù)據(jù)庫存儲介紹PHP訪問數(shù)據(jù)庫的一種高級應(yīng)用。最后通過數(shù)據(jù)庫類的使用實(shí)例,介紹真正實(shí)用高效的數(shù)據(jù)庫開發(fā)方法。 圖1 PHP數(shù)據(jù)庫功能簡介 PHP提供對10余種常見數(shù)據(jù)庫的支持,如Oracle、dBase、Informix、SQL Server、Sysbase、MySQL等。正是由于廣泛的數(shù)據(jù)庫支持,才拓展了PHP的應(yīng)用范圍, 使得各種應(yīng)用都可以利用PHP進(jìn)行開發(fā)。 在各種數(shù)據(jù)庫中,MySQL由于其免費(fèi)、跨平臺、使用方便、訪問效率較高,獲得了很大的應(yīng)用。很多中心型網(wǎng)站都使用PHP+MySQL這一最佳搭檔。 Oracle是典型的大型數(shù)據(jù)庫應(yīng)用系統(tǒng)。如果你設(shè)計的網(wǎng)站數(shù)據(jù)量大,性能、效率要求高的話,Oracle是個不錯的選擇。 在Win32平臺上,SQL Server占有較大的市場。PHP可以訪問SQL Server。 PHP對各種數(shù)據(jù)庫的訪問方法進(jìn)行封裝,針對不同數(shù)據(jù)庫系統(tǒng)的函數(shù)也很相似,增加了使用的方便性。 下面,我們將以一個簡單的人才信息交流中心(見圖1)為例子,編程實(shí)現(xiàn)個人簡歷的在線提交、瀏覽等功能,講述PHP數(shù)據(jù)庫操作的全過程。數(shù)據(jù)庫采用最常用的MySQL數(shù)據(jù)庫。 PHP數(shù)據(jù)庫操作基本步驟 我們將在本地機(jī)器創(chuàng)建名為ResumeDB的數(shù)據(jù)庫,數(shù)據(jù)庫中有名為Resume的表。表中存儲個人簡歷的編號、人員名稱、個人簡介,以及Word格式的簡歷文件等。 1.數(shù)據(jù)庫的創(chuàng)建 切換至/usr/local/mysql/bin目錄,在命令行,執(zhí)行以下語句創(chuàng)建數(shù)據(jù)庫: ./mysqladmin-u root-p create ResumeDB Enter password: 在提示后輸入密碼。如果數(shù)據(jù)庫是第一次使用,默認(rèn)的密碼為空,直接回車即可。 然后創(chuàng)建保存?zhèn)€人簡歷的表。 創(chuàng)建文本文件Resume.sql,內(nèi)容如下: use ResumeDB; CREATE TABLE Resume ( ID tinyint(4) NOT NULL auto_increment, Name varchar(10) NOT NULL, Intro varchar(255), ResuFile longblob, PRIMARY KEY (ID), KEY ID (ID) ); 將其放到My的可執(zhí)行目錄/usr/local/mysql/bin下,執(zhí)行如下命令: ./mysql-u root-p〈 Resume.sql Enter password: 輸入數(shù)據(jù)庫密碼后,表Resume自動創(chuàng)建成功。其中,ResuFile字段為longbolb型,用來存儲二進(jìn)制的Word文檔。 2.數(shù)據(jù)庫訪問流程 PHP對數(shù)據(jù)庫的訪問一般包括下列步驟:連接數(shù)據(jù)庫系統(tǒng)→選擇數(shù)據(jù)庫→執(zhí)行SQL語句→關(guān)閉結(jié)果集→關(guān)閉數(shù)據(jù)庫連接→結(jié)束。 (1) 連接數(shù)據(jù)庫 連接數(shù)據(jù)庫是建立用戶程序到數(shù)據(jù)庫系統(tǒng)的對話通道的過程。連接MySQL數(shù)據(jù)庫的語句如下: 〈? $LinkID=@mysql_connect("localhost", "root" , "") or die("不能連接到數(shù)據(jù)庫服務(wù)器!可能是數(shù)據(jù)庫服務(wù)器沒有啟動,或者用戶名密碼有誤!"); ?〉 其中,函數(shù)mysql_connect()用于與數(shù)據(jù)庫服務(wù)器建立連接。三個參數(shù)分別為:數(shù)據(jù)庫服務(wù)器的主機(jī)名(也可以是IP)、數(shù)據(jù)庫用戶名和用戶密碼。函數(shù)返回值用于表示這個數(shù)據(jù)庫連接。 從這個命令可以看到,我們可以指定并非本機(jī)的機(jī)器名作為數(shù)據(jù)庫服務(wù)器。這樣,就為數(shù)據(jù)的異地存放、數(shù)據(jù)庫的安全隔離提供了可能。外界用戶往往具有WWW服務(wù)器的直接訪問權(quán)限,如果數(shù)據(jù)庫系統(tǒng)直接放置在WWW服務(wù)器上,就可能會帶來安全隱患。而如果將數(shù)據(jù)庫系統(tǒng)放置于一臺防火墻后面的計算機(jī)上,PHP可以通過局域網(wǎng)訪問數(shù)據(jù)庫,而局域網(wǎng)內(nèi)部的計算機(jī)對外部是不可見的。這樣,就保證了數(shù)據(jù)庫不受外來攻擊的可能。 函數(shù)前面的“@”符號,用于限制這個命令的出錯信息的顯示。如果函數(shù)調(diào)用出錯,將執(zhí)行or后面的語句。die( )函數(shù)表示向用戶輸出引號中的內(nèi)容后,程序終止執(zhí)行。這樣做是為了防止數(shù)據(jù)庫連接出錯時,用戶看到一堆莫名其妙的專業(yè)名詞,而是提示定制的出錯信息。不過在調(diào)試的時候,我們還是可以不要屏蔽出錯信息,免得出錯后,難以找到到底哪里有問題。 (2) 數(shù)據(jù)庫選擇 一個數(shù)據(jù)庫系統(tǒng)可以包含多個數(shù)據(jù)庫。在建立了和數(shù)據(jù)庫服務(wù)器的連接后,我們就要告訴系統(tǒng),我們將要用到的數(shù)據(jù)庫是哪個。選擇數(shù)據(jù)庫的命令如下: 〈? @mysql_select_db("ResumeDB",$LinkID) or die("選擇數(shù)據(jù)庫出錯,可能是您指定的數(shù)據(jù)庫不存在!"); ?〉 選擇數(shù)據(jù)庫時,要提供的參數(shù)是數(shù)據(jù)庫的名稱、和服務(wù)器連接號。 當(dāng)我們只使用一臺數(shù)據(jù)庫服務(wù)器時,$LinkID可以省略,系統(tǒng)自動查找最近的一個數(shù)據(jù)庫連接然后使用它。但是,當(dāng)你要實(shí)現(xiàn)大型站點(diǎn)的時候,必不可少的要遇到多主機(jī)、多數(shù)據(jù)庫系統(tǒng)的情況。這時,數(shù)據(jù)庫連接參數(shù)就不能省略了。 (3) 數(shù)據(jù)庫訪問 好了,我們已經(jīng)建立了到數(shù)據(jù)庫的連接,選定了數(shù)據(jù)庫,接下了來的一切就是執(zhí)行SQL語句了。SQL語句的易用而強(qiáng)大的功能,將完成我們絕大部分的數(shù)據(jù)庫操作動作。 我們可以首先向數(shù)據(jù)庫里寫入一條個人信息記錄,然后把它顯示出來。 〈? $Name= "OpenBall"//實(shí)際操作中,$Name、$Intro為從瀏覽器表單傳來的值 $Intro = "OpenBall的個人簡介……"$query = "insert into Resume(Name,Intro) values('$Name', '$Intro')"//生成SQL語句 $result = @mysql_query("$query",$LinkID); //執(zhí)行 if(! $result) echo "數(shù)據(jù)插入失敗!"$query= "select ID,Name,Intro from Resume"//生成SQL語句 $result = mysql_query($query,$LinkID); //執(zhí)行,結(jié)果集保存到變量$result中 $num= mysql_num_rows($result); //取得查詢返回的記錄行數(shù) if($num == 0) { echo "沒有找到任何記錄" exit(); } while($row=mysql_fetch_array($result)) //取結(jié)果集的下一行數(shù)據(jù)到數(shù)組$row中 { echo $row["ID"]." ".$row["Name"]." ".$row["Intro"]."〈br〉"//以字段名為索引訪問數(shù)組變量的值 } ?〉 上面的操作,共執(zhí)行了兩次數(shù)據(jù)庫操作。第一次為插入操作,第二次為查詢操作。程序首先插入當(dāng)前用戶的一天記錄,然后,顯示所有數(shù)據(jù)庫中的個人情況。 (4)資源釋放 操作的最后,是釋放結(jié)果集,釋放結(jié)果集和數(shù)據(jù)庫連接資源。 〈? @mysql_free_result($result); @mysql_close($LinkID); ?〉 如果在多個網(wǎng)頁中都要頻繁進(jìn)行數(shù)據(jù)庫訪問,則可以建立與數(shù)據(jù)庫服務(wù)器的持續(xù)連接來提高效率。因?yàn)槊看闻c數(shù)據(jù)庫服務(wù)器的連接需要較長的時間和較大的資源開銷,持續(xù)的連接相對來說會更有效。 建立持續(xù)連接的方法,就是在數(shù)據(jù)庫連接的時候,調(diào)用函數(shù)mysql_pconnect()代替mysql_connect() 。建立的持續(xù)連接在本程序結(jié)束時,不需要調(diào)用mysql_close()來關(guān)閉。下次程序在此執(zhí)行mysql_pconnect()時,系統(tǒng)自動直接返回已經(jīng)建立的持續(xù)連接的ID號,而不再去真的連接數(shù)據(jù)庫。
標(biāo)簽: PHP
主站蜘蛛池模板: 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 工业设计,人工智能,体验式3D展示的智能技术交流服务平台-纳金网 J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 亮化工程,亮化设计,城市亮化工程,亮化资质合作,长沙亮化照明,杰奥思【官网】 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 识禅_对禅的了解,从这里开始| 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 防锈油-助焊剂-光学玻璃清洗剂-贝塔防锈油生产厂家 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 无锡网站建设_小程序制作_网站设计公司_无锡网络公司_网站制作 | VI设计-LOGO设计公司-品牌设计公司-包装设计公司-导视设计-杭州易象设计 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 高低温万能试验机-复合材料万能试验机-馥勒仪器 | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 许昌奥仕达自动化设备有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 |