![2014上半年課件php第三次培訓(xùn)_第1頁](http://file4.renrendoc.com/view/7c89e1fbb19f4d099b9c6f64f3e1f652/7c89e1fbb19f4d099b9c6f64f3e1f6521.gif)
![2014上半年課件php第三次培訓(xùn)_第2頁](http://file4.renrendoc.com/view/7c89e1fbb19f4d099b9c6f64f3e1f652/7c89e1fbb19f4d099b9c6f64f3e1f6522.gif)
![2014上半年課件php第三次培訓(xùn)_第3頁](http://file4.renrendoc.com/view/7c89e1fbb19f4d099b9c6f64f3e1f652/7c89e1fbb19f4d099b9c6f64f3e1f6523.gif)
![2014上半年課件php第三次培訓(xùn)_第4頁](http://file4.renrendoc.com/view/7c89e1fbb19f4d099b9c6f64f3e1f652/7c89e1fbb19f4d099b9c6f64f3e1f6524.gif)
![2014上半年課件php第三次培訓(xùn)_第5頁](http://file4.renrendoc.com/view/7c89e1fbb19f4d099b9c6f64f3e1f652/7c89e1fbb19f4d099b9c6f64f3e1f6525.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PHP第三節(jié)課(數(shù)據(jù)庫操作+session+cookie+文件上傳) 2014.11.13 莫梓杰數(shù)據(jù)插入(insert)數(shù)據(jù)查詢(select)數(shù)據(jù)更新(update)數(shù)據(jù)刪除(delete)四個(gè)基本的數(shù)據(jù)庫操作數(shù)據(jù)插入insert語句:insert into table_name (column_list) values (data_values)要添加記錄的數(shù)據(jù)表名稱表中的字段列表,表示向表中哪些字段插入數(shù)據(jù)。如果是多個(gè)字段,字段間用逗號(hào)分隔;如果不指定column_list,默認(rèn)向數(shù)據(jù)表中所有字段插入數(shù)據(jù)要添加的數(shù)據(jù)列表,各個(gè)數(shù)據(jù)之間用逗號(hào)分隔。數(shù)據(jù)列表中數(shù)據(jù)的個(gè)數(shù)和數(shù)據(jù)類型必須和字段
2、列表中的字段個(gè)數(shù)和數(shù)據(jù)類型一致?phpinclude(db_connect.php);$username=$_POSTusername;$insertdata=mysql_query(INSERT INTO users (username) VALUES ($username);if($insertdata=true)echo 插入成功!;else echo mysql_error();?INSERT示例代碼示例2$sql=“insert into users (name,sex,age,class) values ($name,$sex,$age,$class)”;/關(guān)鍵字大小寫無區(qū)別ech
3、o $sql; / 檢查是否寫錯(cuò)sql語句 $insertdata=mysql_query($sql);/傳遞的只是一段字符串If($insertdata)/函數(shù)返回的是布爾型true/false整型1/null echo “success insert”;可以先寫好sql語句再執(zhí)行數(shù)據(jù)查詢select語句:select selection_list from table_list where primary_constraint group by grouping_columns order by sorting_columns having secondary_constraint lim
4、it count要查詢的內(nèi)容,選擇哪些字段(需要獲取整行數(shù)據(jù)時(shí)用*)從什么表中查詢查詢時(shí)需要滿足的條件如何對(duì)結(jié)果進(jìn)行分組(同組的結(jié)果只會(huì)顯示一個(gè))如何對(duì)結(jié)果進(jìn)行排序查詢時(shí)滿足的第二個(gè)條件限定輸出的查詢結(jié)果條數(shù) $result=mysql_query(select * from users where userid=48);$row=mysql_fetch_array($result);echo $rowuserid.$rowusername.;$result=mysql_query(select * from users);while($row=mysql_fetch_array($resul
5、t) echo $rowuserid.$rowusername.;Select示例代碼mysql_query()函數(shù)與mysql_fetch_array()函數(shù)mysql_query()函數(shù): mysql_query()對(duì) SELECT 語句返回一個(gè)資源標(biāo)識(shí)符(請(qǐng)通過實(shí)際使用理解),如果查詢執(zhí)行不正確則返回FALSE。對(duì)于 INSERT, UPDATE, DELETE 語句,mysql_query()在執(zhí)行成功時(shí)返回TRUE,出錯(cuò)時(shí)返回FALSE。mysql_fetch_array()函數(shù):mysql_fetch_array () 返回根據(jù)從結(jié)果集取得的行生成數(shù)組,如果沒有更多行則返回FALS
6、E。 數(shù)據(jù)更新update語句: update table_name set column1=expression1 ,column2=expression2 , where condition需要更新表的名稱定要更新的字段,以及這些字段的新值指定要更新的記錄所符合的條件??梢愿鶕?jù)需要加入多個(gè)篩選條件,各條件之間可以用AND或OR連接,也可以使用NOT操作符(!)對(duì)邏輯表達(dá)式取反UPDATE示例代碼$result=mysql_query(update users set password=1212 where userid=49);if (mysql_affected_rows()=1)ech
7、o 更新成功;else echo 數(shù)據(jù)更新失敗;/mysql_affected_rows() 函數(shù)返回前一次 MySQL 操作所影響的記錄行數(shù)。失敗返回-1數(shù)據(jù)刪除delete語句: delete from table_name where condition說明:刪除table_name表中的記錄時(shí),如果沒有指定where條件,將刪除該表中的所有記錄;如果指定了where條件,將按照指定的條件進(jìn)行刪除。DELETE示例代碼DELETE示例代碼mysql_query()非FALSE的返回值意味著查詢是合法的并能夠被服務(wù)器執(zhí)行。這并不說明任何有關(guān)影響到的或返回的行數(shù)。 很有可能一條查詢執(zhí)行成功了
8、但并未影響到或并未返回任何行。intmysql_affected_rows(resource$link_identifier )取得最近一次與link_identifier關(guān)聯(lián)的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數(shù)Notice判斷是否update或delete成功練習(xí)時(shí)間以上次的作業(yè)為基礎(chǔ)向數(shù)據(jù)庫插入一些數(shù)據(jù),然后做刪、查、改的操作,并且把返回的結(jié)果輸出看看返回的是什么內(nèi)容可以用用var_dump()來查看結(jié)果體會(huì)mysql_fetch_array()和mysql_fetch_row()的區(qū)別注意中文的處理,setcharset=utf-8在實(shí)際應(yīng)用中常會(huì)設(shè)置一
9、些狀態(tài)字段來記錄,例如0(未處理),1(處理成功),-1(處理失敗)會(huì)話控制的基本會(huì)話的兩種機(jī)制cookie&session為什么要使用會(huì)話? 用于在網(wǎng)站中根據(jù)一個(gè)會(huì)話追蹤(辨別)用戶那些地方用到了他們?登錄前:登錄后:Session和cookie的本質(zhì) 就是一組用作驗(yàn)證和記錄的,具有全局屬性的數(shù)據(jù)Cookie和session的一些區(qū)別優(yōu)點(diǎn)缺點(diǎn)cookieCookie是以文件方式存放,可以修改其“存活”時(shí)間。 存于用戶端文件中,可能被用戶修改(安全風(fēng)險(xiǎn))一旦用戶禁用cookie的話,就不能用cookie了。sessionSession不會(huì)受瀏覽器端的設(shè)置影響,可記錄每個(gè)訪問者的信息,獨(dú)立在服務(wù)
10、器端,比Cookie安全!存在服務(wù)器內(nèi)存中,大量的session會(huì)浪費(fèi)服務(wù)器內(nèi)存。瀏覽器關(guān)閉它也就“死”了 。默認(rèn)的存活時(shí)間為24分鐘。初始化session和cookie一般session和cookie以數(shù)組的形式存放數(shù)據(jù)和記錄,但是注意在使用前要初始化來聲明使用兩個(gè)函數(shù):setcookie() session_start()注意:必須在任何屬于HTML文件內(nèi)容輸出之前調(diào)用Cookie和session初始化函數(shù)示例:cookie 同理補(bǔ)充:setcookie()可以帶參數(shù)setcookie(user,“aa,time() );/設(shè)置一個(gè)名為user的cookie并賦值為aa,生存時(shí)間為3600
11、秒(1小時(shí))session_start()服務(wù)器會(huì)隨機(jī)生成一個(gè)id給它,可以通過函數(shù)獲取$sessionName = session_name();$sessionID = session_id();設(shè)置session的生命周期實(shí)際上是通過cookie實(shí)現(xiàn)的setcookie(session_name(),session_id(),time() + 3600);Session 和cookie 的銷毀在一般網(wǎng)站中會(huì)有退出和注銷的實(shí)現(xiàn),那就是通過將session/cookie無效化來實(shí)現(xiàn)的session:unset() 函數(shù)用于釋放指定session 變量:unset($_SESSIONname)
12、; 也可以通過 session_destroy() 函數(shù)徹底終結(jié) session:注:session_destroy() 將重置 session,您將失去所有已存儲(chǔ)的 session 數(shù)據(jù)。 cookie:setcookie(name,寫什么無所謂,time()-1)通過修改生存時(shí)間來刪除 練習(xí)記錄網(wǎng)頁訪問次數(shù)(在demo_session文件夾里的count_view.php 基礎(chǔ)上做)點(diǎn)擊重置計(jì)數(shù)后清零。*選作:把做好的上述文件改為用cookie做文件上傳 Filename: 請(qǐng)留意如下有關(guān)此表單的信息: 標(biāo)簽的 enctype 屬性規(guī)定了在提交表單時(shí)要使用哪種內(nèi)容類型。enctype=“m
13、ultipart/form-data”的意思是設(shè)置表單的MIME編碼。默認(rèn)情況,這個(gè)編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù),進(jìn)行下面的操作. 標(biāo)簽的 type=file 屬性規(guī)定了應(yīng)該把輸入作為文件來處理。舉例來說,當(dāng)在瀏覽器中預(yù)覽時(shí),會(huì)看到輸入框旁邊有一個(gè)瀏覽按鈕。創(chuàng)建上傳腳本upload_file.php 文件含有供上傳文件的代碼: 0) echo Error: . $_FILESfileerror . ; else echo Upload: . $_FILES
14、filename . ; echo Type: . $_FILESfiletype . ; echo Size: . ($_FILESfilesize / 1024) . Kb; echo Stored in: . $_FILESfiletmp_name; ?通過使用 PHP 的全局?jǐn)?shù)組 $_FILES,你可以從客戶計(jì)算機(jī)向遠(yuǎn)程服務(wù)器上傳文件。$_FILESfilename - 被上傳文件的名稱$_FILESfiletype - 被上傳文件的類型$_FILESfilesize - 被上傳文件的大小,以字節(jié)計(jì)$_FILESfiletmp_name - 存儲(chǔ)在服務(wù)器的文件的臨時(shí)副本的名稱$_FIL
15、ESfileerror - 由文件上傳導(dǎo)致的錯(cuò)誤代碼添加限制if ($_FILESfiletype = image/gif) | ($_FILESfiletype = image/jpeg) | ($_FILES“file”“type” = “image/pjpeg”)/限制類型,后綴名 & ($_FILES“file”“size” 20000)/限制大小,單位是字節(jié)else echo Invalid file; 上傳成功的文件會(huì)臨時(shí)保存在PHP配置里這指定的一個(gè)目錄中,默認(rèn)是保存在APMServtmpuploadtemp里面,并且會(huì)在程序執(zhí)行成功之后把文件臨時(shí)文件刪除。所以你是看不到這個(gè)臨時(shí)
16、文件的。 所以我們需要轉(zhuǎn)移保存的地方,調(diào)用函數(shù)move_uploaded_file(file,newlocation); if (file_exists(“upload/” . $_FILES“file”“name”) /file_exists()判斷是否有同名文件,存在返回1,否則0,注意目錄位置以腳本文件為準(zhǔn) echo $_FILESfilename . already exists. ; else move_uploaded_file($_FILESfiletmp_name, upload/ . $_FILESfilename);/第一個(gè)參數(shù)是保存在暫存目錄的臨時(shí)文件名,第二個(gè)參數(shù)是要保存的目錄和文件名echo Stored in: . upload/ . $_FILESfilename; 臨時(shí)改變上傳文件大小限制:長久之計(jì):在php.ini中更改MAX_FILE_SIZE的值*php.ini中可以設(shè)置修改很多重要的配置。做項(xiàng)目中可能經(jīng)常要查看或修改配置。Php.ini中的部分配置 (對(duì)php配置的一個(gè)詳
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 深入探討科技企業(yè)如何通過強(qiáng)化知識(shí)產(chǎn)權(quán)保護(hù)來提升品牌形象和競(jìng)爭力
- 現(xiàn)代綠色辦公樓的設(shè)計(jì)與施工經(jīng)驗(yàn)分享
- 生產(chǎn)制造中基于智能算法的調(diào)度系統(tǒng)設(shè)計(jì)
- 2023三年級(jí)英語上冊(cè) Unit 3 My friends第4課時(shí)說課稿 牛津譯林版
- 2024年春八年級(jí)語文下冊(cè) 第二單元 5 大自然的語言說課稿 新人教版
- 9 烏鴉喝水(說課稿)-2024-2025學(xué)年統(tǒng)編版語文一年級(jí)上冊(cè)
- Unit 4 My Family Lesson 2(說課稿)-2023-2024學(xué)年人教新起點(diǎn)版英語三年級(jí)下冊(cè)
- Unit 6 Useful numbers Lesson 2(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 2024-2025學(xué)年高中歷史 第三單元 各國經(jīng)濟(jì)體制的創(chuàng)新和調(diào)整 第16課 戰(zhàn)后資本主義經(jīng)濟(jì)的調(diào)整教學(xué)說課稿 岳麓版必修2
- 2025淮安市城東花園小區(qū)門禁系統(tǒng)工程合同
- 2023年四川省自貢市中考數(shù)學(xué)真題(原卷版)
- 室內(nèi)鋼結(jié)構(gòu)隔層施工合同
- 山東省濰坊市高職單招2023年英語自考測(cè)試卷(含答案)
- 三年級(jí)數(shù)學(xué)混合運(yùn)算100題
- 通信工程安全生產(chǎn)手冊(cè)
- GB/T 9074.1-2002螺栓或螺釘和平墊圈組合件
- GB/T 8014-1987鋁及鋁合金陽極氧化陽極氧化膜厚度的定義和有關(guān)測(cè)量厚度的規(guī)定
- 中醫(yī)醫(yī)院新入職護(hù)士培訓(xùn)大綱
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件
- 煙葉分級(jí)工新教材(高級(jí)篇)
- 六編元代文學(xué)
評(píng)論
0/150
提交評(píng)論