2014上半年課件php第三次培訓_第1頁
2014上半年課件php第三次培訓_第2頁
2014上半年課件php第三次培訓_第3頁
2014上半年課件php第三次培訓_第4頁
2014上半年課件php第三次培訓_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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)四個基本的數(shù)據(jù)庫操作數(shù)據(jù)插入insert語句:insert into table_name (column_list) values (data_values)要添加記錄的數(shù)據(jù)表名稱表中的字段列表,表示向表中哪些字段插入數(shù)據(jù)。如果是多個字段,字段間用逗號分隔;如果不指定column_list,默認向數(shù)據(jù)表中所有字段插入數(shù)據(jù)要添加的數(shù)據(jù)列表,各個數(shù)據(jù)之間用逗號分隔。數(shù)據(jù)列表中數(shù)據(jù)的個數(shù)和數(shù)據(jù)類型必須和字段

2、列表中的字段個數(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; / 檢查是否寫錯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ù)時用*)從什么表中查詢查詢時需要滿足的條件如何對結(jié)果進行分組(同組的結(jié)果只會顯示一個)如何對結(jié)果進行排序查詢時滿足的第二個條件限定輸出的查詢結(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()對 SELECT 語句返回一個資源標識符(請通過實際使用理解),如果查詢執(zhí)行不正確則返回FALSE。對于 INSERT, UPDATE, DELETE 語句,mysql_query()在執(zhí)行成功時返回TRUE,出錯時返回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ù)需要加入多個篩選條件,各條件之間可以用AND或OR連接,也可以使用NOT操作符(!)對邏輯表達式取反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表中的記錄時,如果沒有指定where條件,將刪除該表中的所有記錄;如果指定了where條件,將按照指定的條件進行刪除。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成功練習時間以上次的作業(yè)為基礎(chǔ)向數(shù)據(jù)庫插入一些數(shù)據(jù),然后做刪、查、改的操作,并且把返回的結(jié)果輸出看看返回的是什么內(nèi)容可以用用var_dump()來查看結(jié)果體會mysql_fetch_array()和mysql_fetch_row()的區(qū)別注意中文的處理,setcharset=utf-8在實際應(yīng)用中常會設(shè)置一

9、些狀態(tài)字段來記錄,例如0(未處理),1(處理成功),-1(處理失敗)會話控制的基本會話的兩種機制cookie&session為什么要使用會話? 用于在網(wǎng)站中根據(jù)一個會話追蹤(辨別)用戶那些地方用到了他們?登錄前:登錄后:Session和cookie的本質(zhì) 就是一組用作驗證和記錄的,具有全局屬性的數(shù)據(jù)Cookie和session的一些區(qū)別優(yōu)點缺點cookieCookie是以文件方式存放,可以修改其“存活”時間。 存于用戶端文件中,可能被用戶修改(安全風險)一旦用戶禁用cookie的話,就不能用cookie了。sessionSession不會受瀏覽器端的設(shè)置影響,可記錄每個訪問者的信息,獨立在服務(wù)

10、器端,比Cookie安全!存在服務(wù)器內(nèi)存中,大量的session會浪費服務(wù)器內(nèi)存。瀏覽器關(guān)閉它也就“死”了 。默認的存活時間為24分鐘。初始化session和cookie一般session和cookie以數(shù)組的形式存放數(shù)據(jù)和記錄,但是注意在使用前要初始化來聲明使用兩個函數(shù):setcookie() session_start()注意:必須在任何屬于HTML文件內(nèi)容輸出之前調(diào)用Cookie和session初始化函數(shù)示例:cookie 同理補充:setcookie()可以帶參數(shù)setcookie(user,“aa,time() );/設(shè)置一個名為user的cookie并賦值為aa,生存時間為3600

11、秒(1小時)session_start()服務(wù)器會隨機生成一個id給它,可以通過函數(shù)獲取$sessionName = session_name();$sessionID = session_id();設(shè)置session的生命周期實際上是通過cookie實現(xiàn)的setcookie(session_name(),session_id(),time() + 3600);Session 和cookie 的銷毀在一般網(wǎng)站中會有退出和注銷的實現(xiàn),那就是通過將session/cookie無效化來實現(xiàn)的session:unset() 函數(shù)用于釋放指定session 變量:unset($_SESSIONname)

12、; 也可以通過 session_destroy() 函數(shù)徹底終結(jié) session:注:session_destroy() 將重置 session,您將失去所有已存儲的 session 數(shù)據(jù)。 cookie:setcookie(name,寫什么無所謂,time()-1)通過修改生存時間來刪除 練習記錄網(wǎng)頁訪問次數(shù)(在demo_session文件夾里的count_view.php 基礎(chǔ)上做)點擊重置計數(shù)后清零。*選作:把做好的上述文件改為用cookie做文件上傳 Filename: 請留意如下有關(guān)此表單的信息: 標簽的 enctype 屬性規(guī)定了在提交表單時要使用哪種內(nèi)容類型。enctype=“m

13、ultipart/form-data”的意思是設(shè)置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù),進行下面的操作. 標簽的 type=file 屬性規(guī)定了應(yīng)該把輸入作為文件來處理。舉例來說,當在瀏覽器中預(yù)覽時,會看到輸入框旁邊有一個瀏覽按鈕。創(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 的全局數(shù)組 $_FILES,你可以從客戶計算機向遠程服務(wù)器上傳文件。$_FILESfilename - 被上傳文件的名稱$_FILESfiletype - 被上傳文件的類型$_FILESfilesize - 被上傳文件的大小,以字節(jié)計$_FILESfiletmp_name - 存儲在服務(wù)器的文件的臨時副本的名稱$_FIL

15、ESfileerror - 由文件上傳導致的錯誤代碼添加限制if ($_FILESfiletype = image/gif) | ($_FILESfiletype = image/jpeg) | ($_FILES“file”“type” = “image/pjpeg”)/限制類型,后綴名 & ($_FILES“file”“size” 20000)/限制大小,單位是字節(jié)else echo Invalid file; 上傳成功的文件會臨時保存在PHP配置里這指定的一個目錄中,默認是保存在APMServtmpuploadtemp里面,并且會在程序執(zhí)行成功之后把文件臨時文件刪除。所以你是看不到這個臨時

16、文件的。 所以我們需要轉(zhuǎn)移保存的地方,調(diào)用函數(shù)move_uploaded_file(file,newlocation); if (file_exists(“upload/” . $_FILES“file”“name”) /file_exists()判斷是否有同名文件,存在返回1,否則0,注意目錄位置以腳本文件為準 echo $_FILESfilename . already exists. ; else move_uploaded_file($_FILESfiletmp_name, upload/ . $_FILESfilename);/第一個參數(shù)是保存在暫存目錄的臨時文件名,第二個參數(shù)是要保存的目錄和文件名echo Stored in: . upload/ . $_FILESfilename; 臨時改變上傳文件大小限制:長久之計:在php.ini中更改MAX_FILE_SIZE的值*php.ini中可以設(shè)置修改很多重要的配置。做項目中可能經(jīng)常要查看或修改配置。Php.ini中的部分配置 (對php配置的一個詳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論