PHP操作MySQL數(shù)據(jù)庫的方法-執(zhí)行SQL語句的函數(shù)
在我們?nèi)粘HP開發(fā)工作中,當我們要從數(shù)據(jù)庫獲取數(shù)據(jù)的時候, 在PHP連接數(shù)據(jù)庫后,接下來就是我們要選擇數(shù)據(jù)庫,那么要對數(shù)據(jù)庫的表進行操作,我們就要用到 SQL語句了!
在前面的兩篇文章《mysql教程》,《mysql教程》中介紹是如何連接數(shù)據(jù)庫以及選擇數(shù)據(jù)庫 ,那么我么今天來介紹如何執(zhí)行 SQL語句。
立即學習“PHP免費學習筆記(深入)”;
要對數(shù)據(jù)庫中的表進行操作,我們通常使用 mysql_query()函數(shù)來執(zhí)行 SQL語句。該函數(shù)的語法格式如下:
mysql_query(string?query[,resource?link_identifier])
mysql_query()函數(shù)是指令的專用函數(shù),所有的SQL語句都通過它來執(zhí)行,并且返回結(jié)果集。
注意:
在mysql_query函數(shù)中執(zhí)行的 SQL 語句不應以分號“;”結(jié)束。
mysql_query() 僅對 SELECT,SHOW,EXPLAIN 或 DESCRIBE 語句返回一個資源標識符,如果查詢執(zhí)行不正確則返回 FALSE。
對于其它類型的 SQL 語句,mysql_query() 在執(zhí)行成功時返回 TRUE,出錯時返回 FALSE。
非 FALSE 的返回值意味著查詢是合法的并能夠被服務器執(zhí)行。這并不說明任何有關(guān)影響到的或返回的行數(shù)。很有可能一條查詢執(zhí)行成功了但并未影響到或并未返回任何行。
注意:
mysql_unbuffered_query()函數(shù)向MySQL發(fā)送一條SQL查詢語句,但不獲取和緩存結(jié)果集。它不像 mysql_query()函數(shù)那樣自動獲取并緩存結(jié)果集,一方面,這在處理很大的結(jié)果集時會節(jié)省可觀的內(nèi)存,另一方面,可以再獲取第一行后立即對結(jié)果集進行操作,而不用等到整個 SQL語句都執(zhí)行完畢。
下面以數(shù)據(jù)庫里的表 tb_nember為例子,舉例說明常見的 SQL 語句的用法。
比如,執(zhí)行一個添加會員記錄的 SQL 語句的代碼如下:
$result?=?mysql_query("insert?into?tb_nember?values('tm','111','tm@tmsoft')",$link);
比如,執(zhí)行一個修改會員的 SQL語句代碼如下:
$result?=?mysql_query("update?tb_nember?set?user=?'純凈水',pwd?='1025'where?user?=?'tm'",$link);
比如,執(zhí)行一個刪除會員記錄的 SQL語句的代碼如下:
$result?=?mysql_query("delete?from?tb_nember?where?user?=?'純凈水'",$link);
比如,執(zhí)行一個查詢會員記錄的 SQL語句的代碼如下:
$result?=?mysql_query("select?*?from?tb_nember",$link);
比如,執(zhí)行一個顯示會員信息表結(jié)構(gòu)的 SQL 語句的代碼如下:
$result?=?mysql_query("DESC?tb_nember");
說明:
在執(zhí)行以上列出的 SQL語句前,需要連接 MySQL 服務器和選擇數(shù)據(jù)庫,其實現(xiàn)方法在前幾篇文章都有詳細介紹,不知道的小伙伴可以去看看,這里的不做詳述!
以上通過各個實例創(chuàng)建了 SQL語句,并賦予變量$result。PHP提供了一些函數(shù)來處理查詢得到的結(jié)果$result,如 mysql_fetch_array()函數(shù),mysql_fetch_object()函數(shù)以及mysql_fetch_row()函數(shù)等,為了讓大家理解這個幾個函數(shù),下面我們將從mysql_fetch_array()函數(shù)開始講解,具體閱讀《mysql教程》!