邊記邊學PHP-(十六)PHP使用MySQL擴充庫操作資料庫

來源:互聯網
上載者:User
PHP提供了很多擴充庫,這裡說的是使用MySQL擴充庫,但是這種擴充庫在不久的將來就會被摒棄,因為如果使用MySQL擴充庫編寫的代碼在啟動並執行時候會有warning的提示。我本來想直接寫另一種,但是感覺這是基礎。MySQL擴充庫,一說到庫,自然而然就想到是一堆函數,很多函數組成一個庫,使用擴充庫也就是使用裡面的函數。MySQL擴充庫是完全面向過程的,顯然不符合物件導向的特性,被摒棄也是可以理解的。廢話不多說,直接上重點。

一、PHP使用MySQL擴充庫操作資料庫的

此圖是我自己畫的,可能有不準確的地方。

可以看到使用MySQL操作資料庫大致經過五步:

1、串連MySQL伺服器

這裡使用的函數是mysql_connect()函數

2、選擇資料庫

這裡使用的是mysql_select_db();函數

3、執行SQL語句

這裡使用mysql_query()函數。所謂的SQL語句就是增刪改查操作。

4、關閉結果集

這裡使用mysql_free_result();函數,釋放系統資源

5、斷開與伺服器的串連

這裡使用mysql_close();函數

二、細說五步

1、串連MySQL伺服器

mysql_connect()函數的文法如下:

resource mysql_connect([string server[,string username[,string password[,bool new_link[,int client_flags]]]]]);

這是最完整的函數參數,但是我們在用的時候就只是用前三個參數就好了。

第一個server指的是MySQL伺服器,可以使用預設的localhost。

第二個username就是在安裝資料庫的時候自己設定的使用者名稱,我們預設的是root。

第三個password就是資料庫的密碼。

如果串連成功會返回一個MySQL串連標識,失敗則返回false。

比如我串連我自己的資料庫,我的伺服器為localhost,使用者名稱為root,密碼為root。我可以這麼測試

   

2、選擇資料庫

bool mysql_select_db(string database_name[,resource link_identifier]);

第一個參數database_name是要串連的資料庫名。

第二個參數link_identifier是資料庫連接標識,也就是上面串連MySQL伺服器成功後返回的值。如果不寫,預設為上一次開啟的資料庫連接。建議寫。

成功返回true,失敗返回false。

比如我需要串連我上次建立的那個test資料庫,我可以這麼寫:

   


3、執行SQL語句

所謂SQL語句就是對資料庫進行的增刪改查操作。在使用命令列操作資料庫的時候已經介紹了。函數文法如下:

resource mysql_query(string query[,resource link_identifier]);

第一個參數就是需要執行的sql語句。

第二個參數是mysql_connect返回的串連標識。建議寫。

sql語句分為ddl【資料定義語句】 ,dml【 資料動作陳述式,如update,insert,delete】,dql【 select】 ,dtl【資料事務語句 rollback commit】,這裡面最常用的就是dql語句,也就是查詢語句。在執行dql語句成功後返回的是一個“資料指標”,在執行dml語句成功後返回的是true,失敗都返回false。

比如我想查詢現在我的表裡有什麼資料,我可以這麼寫。

';}

增刪改不舉例了,就是把SQL語句換了。然後返回的true或false。不用再取結果集。

4、關閉結果集

mysql_free_result(resource $res);

比如上面我用完之後就可以關閉結果集了,mysql_free_result($query);

5、斷開與資料庫連接

mysql_close(resource $link_identifier);

比如上面程式最後我就可以中斷連線了,mysql_close($conn);

三、這裡給出綜合案例

";          //echo "$row[0]--$row[1]--$row[2]--$row[3]--$row[4]";          //var_dump($row);          //第二種取法          foreach($row as $key=>$value){               echo "$value--";          }              }     //6.釋放資源     mysql_free_result($res);     mysql_close($conn);  //這句可以不寫,建議寫

四、細節問題

1.使用完$res結果集後,一定要釋放資源
2.mysql_close()如果沒有的話,系統也會自動關閉
3.如果mysql_close放在了while前面,那麼不會影響結果,因為執行完mysql_query語句之後,程式已經把資料庫讀到記憶體,再次使用時是從記憶體讀取。但是如果mysql_free_result放在前面,那麼就會出錯。
4.$row是個數組
5.$res如果執行的是dql語句返回的是個資源類型,但是如果執行的是dml語句就會返回bool值

6.從$res擷取行資料的時候,除了mysql_fetch_row($res)[返回索引數組]還有三個方法:

mysql_fetch_assoc($res) --------返回一個關聯陣列

mysql_fetch_array($res) ---------返回索引數組和關聯陣列,很耗記憶體,建議不要使用

mysql_fetch_object($res) ---------把一行資料當成一個對象返回



至此使用MySQL擴充庫操作資料庫基本完成,這是後面使用Mysqli擴充庫操作資料庫的基礎,下一篇寫Mysqli擴充庫操作資料庫。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.