PHP和MySQL入門(10)

來源:互聯網
上載者:User
在第二章中,我們使用一個叫mysql的程式來串連到MySQL資料庫伺服器,在這個程式中,我們可以輸入SQL查詢(命令)並立即顯示查詢結果。在PHP中,有著類似的機制:mysql_query函數。

mysql_query(, );

在這兒,是一個包含將執行的SQL命令的字串。和mysql_select_db一樣,串連標識這個參數也是可選的。

這個函數的返回決定於發出的查詢的類型。對於絕大多數的SQL命令來說,mysql_query返回邏輯真或邏輯假來標明執行是否成功。請參看下面這個例子,這是用來建立我們在第二章中建立的Jokes資料表的:

$sql = "CREATE TABLE Jokes ( " .
"ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, " .
"JokeText TEXT, " .
"JokeDate DATE NOT NULL " .
")";
if ( mysql_query($sql) ) {
echo("

Jokes table successfully created!

");
} else {
echo("

Error creating Jokes table: " .
mysql_error() . "

");
}

這兒使用的mysql_error將以字串的形式返回MySQL伺服器最後發出的錯誤資訊。

對於DELETE、 INSERT以及UPDATE(用來修改儲存的資料),MySQL可以知道有多少資料行被這個查詢影響。參看下面的SQL命令,這個命令我們曾在第二章中用來設定所有包含單詞“chicken”的笑話的日期:

$sql = "UPDATE Jokes SET JokeDate='1990-04-01' " .
"WHERE JokeText LIKE '%chicken%'";

當我們執行這個查詢時,我們可以使用mysql_affected_rows函數來顯示這個修改所影響的資料行的數目:

if ( mysql_query($sql) ) {
echo("

Update affected " .
mysql_affected_rows() . " rows.

");
} else {
echo("

Error performing update: " .
mysql_error() . "

");
}

SELECT命令會有一些不同,因為它會得到許多資訊,而PHP必須提供方法來處理這些資訊。

處理SELECT結果集

對於絕大多數的SQL查詢來說,mysql_query函數僅僅返回邏輯真或邏輯假。而對於 SELECT查詢來說,僅僅這樣顯然是不夠的。你應該還記得 SELECT查詢是用來顯示資料庫中儲存的資料的。除了指出查詢成功還是失敗之外,PHP還必須得到查詢的結果。作為一個結果,當我們執行一個 SELECT查詢的時候,mysql_query會返回一個標識“結果集”的數字,這將包含了這個查詢返回的所有行的列表。如果查詢失敗,函數仍然是返回 一個邏輯假。

$result = mysql_query("SELECT JokeText FROM Jokes");
if (!$result) {
echo("

Error performing query: " .
mysql_error() . "

");
exit();
}

假定在執行查詢時沒有遇到錯誤,上面的代碼會定位一個有關儲存在笑話庫中所有笑話的本文的結果集,這個定位被儲存在變數$result中。因為資料庫中的笑話的數目是沒有限制的,這個結果集可能非常龐大。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.