日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

《PHP和MySQL Web开发》学习之二--数据的存储与检索

發布時間:2025/7/14 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《PHP和MySQL Web开发》学习之二--数据的存储与检索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? 最近這段時間主要將時間和精力花在看《代碼大全》和《Clean Code》上了,今晚操作了一下久違的PHP,現將第二章的主要內容摘要如下。書很久之前就看了,一直沒有寫筆記,突然發現很多語法已經有些生疏,看來學習一門新的語言還是要通過練習,練習再練習。當然,寫筆記的過程也是一個記憶的過程,俗話說:好記心當不得爛筆頭是也。

??????? 存儲數據有兩種基本方法:保存到普通文件,或者保存到數據庫中。

??????? 1.文件處理

???????? 將數據寫入文件的三個步驟:(1)打開這個文件,如果不存在則創建;(2)將數據寫入文件;(3)關閉文件

??????? 從文件中讀取數據的三個步驟:(1)打開這個文件,如果文件不存在則正確的退出;(2)從文件中讀取數據;(3)關閉文件。

??????? 2.打開文件

??????? (1)使用fopen()來打開文件

??????? 如要將一個顧客訂單寫入Bob訂單文件,可以使用如下語句打開該文件:

??????? $fp = fopen("%DOCUMENT_ROOT/../orders/orders.txt", 'w');

??????? 上面代碼中,使用了內置變量$_SERVER['DOCUMENT_ROOT'],指向web服務器文檔樹的根。用".."表示文檔根目錄的父目錄。

??????? 在Unix系統中,根目錄是/,在windows系統中,根目錄是C:\。在Unix環境下,目錄中的間隔符是正斜線(/)。windows平臺下可以使用正斜線或者反斜線,如果使用反斜線,則需要使用轉義字符(轉義字符為反斜線\)。在PHP中很少使用反斜線,因為這樣意味著代碼只能在windows下運行。如果使用正斜線嗎,代碼不需要任何修改就可以在linux下運行。

??????? (2)通過FTP或者HTTP打開文件

??????? 除了打開本地文件進行讀寫之外,還可以使用fopen()函數通過FTP、HTTP或者其它協議來打開文件。在php.ini文件中,可以通過關閉allow_url_fopen指令來禁用這個功能。

??????? 如果使用的文件名是以ftp://開始的,fopen()將建立一個連接到指定服務器的被動模式,并返回一個指向文件開始的指針。

??????? 如果使用的文件名是以http://開始的,fopen()函數將建立一個到指定服務器的HTTP連接,并返回一個指向HTTP響應的指針。

??????? 請注意:URL中的域名不區分大小寫,但是路徑和文件名可能區分大小寫。

??????? (3)打開文件時可能遇到的問題

???????? 打開文件時,常見錯誤時試圖打開一個沒有權限進行讀寫操作的文件。

??????? 任何人都可以寫的目錄和文件是非常危險的,不應該具有可以從web上直接可寫的目錄。

??????? $fp = @fopen("%DOCUMENT_ROOT/../orders/orders.txt", 'w');

??????? 上面代碼中的@可以抑制所有由該函數調用所產生的錯誤。通常在出錯的時候這是一個不錯的方法,但是要在其它地方處理它。

??????? 3.寫文件

??????? 在PHP中寫文件相對簡單,可以使用fwrite()或者fputs()。fputs()是fwrite()的別名函數。可以使用如下方法調用fwrite:

??????? fwrite($fp, $outputstring);

??????? 這個函數用來將$outputstring中的字符串寫入到$fp指向的文件中。

??????? fwrite()函數的一個替換函數是file_put_contents(),其原型是:

??????? int file_put_contents(string filename,

????????????????????????????????????? string data

????????????????????????????????????? [, int flags

????????????????????????????????????? [,resource context]]

??????? )

????????這個函數可以在不需要調用fopen()(或fclose())函數打開要寫的文件之前,將包含在data中的字符串數據寫入到filename所指定的文件中。

??????? (1)fwrite的參數

??????? fwrite的原型如下:

??????? int fwrite(resource handle, string string[, int length])

??????? 第三個參數length是寫入的最大字符數。如果給出這個參數,則將向handle指向的文件中寫入字符串,一直寫到字符串的末尾或者已經寫了length字節才停止。

??????? 4.關閉文件

??????? 使用完文件后要關閉,調用fclose()函數,如下:

??????? fclose($fp);

??????? 5.讀文件

??????? (1)知道何時讀完文件:feof()

????????(2)每次讀取一行數據:fgets(),fgetss()和fgetcsv()

??????? (3)讀取整個文件:readfile(),fpassthru()和file()

??????? (4)讀取一個字符:fgetc()

??????? (5)讀取任意長度:fread()

??????? 6.使用其它有用的文件函數

??????? (1)查看文件是否存在:file_exists()

????????(2)確定文件大小:filesize()

??????? (3)刪除一個文件:unlink()

??????? (4)在文件中定位:將文件指針復位到文件的開始rewind(),fseek()(將文件指針指向某個位置)和ftell()(以字節方式報告文件指針在文件的位置)

??????? 7.文件鎖定

??????? 文件鎖定是通過flock()來實現的。

?????? 8.更好的方式:數據庫管理系統

??????? 普通文件存在的問題:

??????? (1)文件變大時,使用普通文件將變得非常慢

??????? (2)在一個普通文件中查找特定的一個或者一組記錄非常難。

??????? (3)處理并發訪問會遇到問題

??????? (4)不利于在文件中間插入或刪除

????????

?

?

?

?

?

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/superhuake/archive/2011/10/18/2216936.html

總結

以上是生活随笔為你收集整理的《PHP和MySQL Web开发》学习之二--数据的存储与检索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。