PHP MySQL 簡介
MySQL 是最流行的開源數(shù)據(jù)庫服務器。
什么是 MySQL?
MySQL 是一種數(shù)據(jù)庫。數(shù)據(jù)庫定義了存儲信息的結構。
在數(shù)據(jù)庫中,存在著一些表。類似 HTML 表格,數(shù)據(jù)庫表含有行、列以及單元。
在分類存儲信息時,數(shù)據(jù)庫非常有用。一個公司的數(shù)據(jù)庫可能擁有這些表:"Employees", "Products", "Customers" 以及 "Orders"。
數(shù)據(jù)庫表
數(shù)據(jù)庫通常包含一個或多個表。每個表都一個名稱(比如 "Customers" 或 "Orders")。每個表包含帶有數(shù)據(jù)的記錄(行)。
下面是一個名為 "Persons" 的表的例子:
上面的表含有三個記錄(每個記錄是一個人)和四個列(LastName, FirstName, Address 以及 City)。
查詢
查詢是一種詢問或請求。
通過 MySQL,我們可以向數(shù)據(jù)庫查詢具體的信息,并得到返回的記錄集。
請看下面的查詢:
上面的查詢選取了 Persons 表中 LastName 列的所有數(shù)據(jù),并返回類似這樣的記錄集:
下載 MySQL 數(shù)據(jù)庫
如果您的 PHP 服務器沒有 MySQL 數(shù)據(jù)庫,可以在此下載 MySQL:http://www.mysql.com/downloads/index.html
Facts About MySQL Database
關于 MySQL 的一點很棒的特性是,可以對它進行縮減,來支持嵌入的數(shù)據(jù)庫應用程序。也許正因如此,許多人認為 MySQL 僅僅能處理中小型的系統(tǒng)。
事實上,對于那些支持巨大數(shù)據(jù)和訪問量的網站,MySQL 是事實上的標準數(shù)據(jù)庫(比如 Friendster, Yahoo, Google)。這個地址提供了使用 MySQL 的公司的概覽:http://www.mysql.com/customers/。
PHP MySQL 連接數(shù)據(jù)庫
免費的 MySQL 數(shù)據(jù)庫通常是通過 PHP 來使用的。
連接到一個 MySQL 數(shù)據(jù)庫
在您能夠訪問并處理數(shù)據(jù)庫中的數(shù)據(jù)之前,您必須創(chuàng)建到達數(shù)據(jù)庫的連接。
在 PHP 中,這個任務通過 mysql_connect() 函數(shù)完成。
語法
注釋:雖然還存在其他的參數(shù),但上面列出了最重要的參數(shù)。請訪問 W3School 提供的 PHP MySQL 參考手冊,獲得更多的細節(jié)信息。
例子
在下面的例子中,我們在一個變量中 ($con) 存放了在腳本中供稍后使用的連接。如果連接失敗,將執(zhí)行 "die" 部分:
關閉連接
腳本一結束,就會關閉連接。如需提前關閉連接,請使用 mysql_close() 函數(shù)。
PHP MySQL 創(chuàng)建數(shù)據(jù)庫和表
數(shù)據(jù)庫存有一個或多個表。
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 語句用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫。
語法
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。此函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。
例子
在下面的例子中,我們創(chuàng)建了一個名為 "my_db" 的數(shù)據(jù)庫:
創(chuàng)建表
CREATE TABLE 用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫表。
語法
為了執(zhí)行此命令,我必須向 mysql_query() 函數(shù)添加 CREATE TABLE 語句。
例子
下面的例子展示了如何創(chuàng)建一個名為 "person" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":
重要事項:在創(chuàng)建表之前,必須首先選擇數(shù)據(jù)庫。通過 mysql_select_db() 函數(shù)選取數(shù)據(jù)庫。
注釋:當您創(chuàng)建 varchar 類型的數(shù)據(jù)庫字段時,必須規(guī)定該字段的最大長度,例如:varchar(15)。
MySQL 數(shù)據(jù)類型
主鍵和自動遞增字段
每個表都應有一個主鍵字段。
主鍵用于對表中的行進行唯一標識。每個主鍵值在表中必須是唯一的。此外,主鍵字段不能為空,這是由于數(shù)據(jù)庫引擎需要一個值來對記錄進行定位。
主鍵字段永遠要被編入索引。這條規(guī)則沒有例外。你必須對主鍵字段進行索引,這樣數(shù)據(jù)庫引擎才能快速定位給予該鍵值的行。
下面的例子把 personID 字段設置為主鍵字段。主鍵字段通常是 ID 號,且通常使用 AUTO_INCREMENT 設置。AUTO_INCREMENT 會在新紀錄被添加時逐一增加該字段的值。要確保主鍵字段不為空,我們必須向該字段添加 NOT NULL 設置。
例子
PHP MySQL Insert Into
INSERT INTO 語句用于向數(shù)據(jù)庫表中插入新紀錄。
向數(shù)據(jù)庫表插入數(shù)據(jù)
INSERT INTO 語句用于向數(shù)據(jù)庫表添加新紀錄。
語法
您還可以規(guī)定希望在其中插入數(shù)據(jù)的列:
注釋:SQL 語句對大小寫不敏感。INSERT INTO 與 insert into 相同。
為了讓 PHP 執(zhí)行該語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。
例子
在前面的章節(jié),我們創(chuàng)建了一個名為 "Person" 的表,有三個列:"Firstname", "Lastname" 以及 "Age"。我們將在本例中使用同樣的表。下面的例子向 "Person" 表添加了兩個新紀錄:
把來自表單的數(shù)據(jù)插入數(shù)據(jù)庫
現(xiàn)在,我們創(chuàng)建一個 HTML 表單,這個表單可把新紀錄插入 "Person" 表。
這是這個 HTML 表單:
當用戶點擊上例中 HTML 表單中的提交按鈕時,表單數(shù)據(jù)被發(fā)送到 "insert.php"。"insert.php" 文件連接數(shù)據(jù)庫,并通過 $_POST 變量從表單取回值。然后,mysql_query() 函數(shù)執(zhí)行 INSERT INTO 語句,一條新的記錄會添加到數(shù)據(jù)庫表中。
下面是 "insert.php" 頁面的代碼:
PHP MySQL Select
SELECT 語句用于從數(shù)據(jù)庫中選取數(shù)據(jù)。
從數(shù)據(jù)庫表中選取數(shù)據(jù)
SELECT 語句用于從數(shù)據(jù)庫中選取數(shù)據(jù)。
語法
注釋:SQL 語句對大小寫不敏感。SELECT 與 select 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 MySQL 發(fā)送查詢或命令。
例子
下面的例子選取存儲在 "Person" 表中的所有數(shù)據(jù)(* 字符選取表中所有數(shù)據(jù)):
上面這個例子在 $result 變量中存放由 mysql_query() 函數(shù)返回的數(shù)據(jù)。接下來,我們使用 mysql_fetch_array() 函數(shù)以數(shù)組的形式從記錄集返回第一行。每個隨后對 mysql_fetch_array() 函數(shù)的調用都會返回記錄集中的下一行。 while loop 語句會循環(huán)記錄集中的所有記錄。為了輸出每行的值,我們使用了 PHP 的 $row 變量 ($row['FirstName'] 和 $row['LastName'])。
以上代碼的輸出:
Peter Griffin
Glenn Quagmire
在 HTML 表格中顯示結果
下面的例子選取的數(shù)據(jù)與上面的例子相同,但是將把數(shù)據(jù)顯示在一個 HTML 表格中:
以上代碼的輸出:
PHP MySQL Where 子句
如需選取匹配指定條件的數(shù)據(jù),請向 SELECT 語句添加 WHERE 子句。
WHERE 子句
如需選取匹配指定條件的數(shù)據(jù),請向 SELECT 語句添加 WHERE 子句。
語法
下面的運算符可與 WHERE 子句一起使用:
注釋:SQL 語句對大小寫不敏感。WHERE 與 where 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。
例子
下面的例子將從 "Person" 表中選取所有 FirstName='Peter' 的行:
以上代碼的輸出:
Peter Griffin
PHP MySQL Order By 關鍵詞
ORDER BY 關鍵詞用于對記錄集中的數(shù)據(jù)進行排序。
ORDER BY 關鍵詞
ORDER BY 關鍵詞用于對記錄集中的數(shù)據(jù)進行排序。
語法
注釋:SQL 對大小寫不敏感。ORDER BY 與 order by 等效。
例子
下面的例子選取 "Person" 表中的存儲的所有數(shù)據(jù),并根據(jù) "Age" 列對結果進行排序:
以上代碼的輸出:
Glenn Quagmire 33
Peter Griffin 35
升序或降序的排序
如果您使用 ORDER BY 關鍵詞,記錄集的排序順序默認是升序(1 在 9 之前,"a" 在 "p" 之前)。
請使用 DESC 關鍵詞來設定降序排序(9 在 1 之前,"p" 在 "a" 之前):
根據(jù)兩列進行排序
可以根據(jù)多個列進行排序。當按照多個列進行排序時,只有第一列相同時才使用第二列:
PHP MySQL Update
UPDATE 語句用于中修改數(shù)據(jù)庫表中的數(shù)據(jù)。
更新數(shù)據(jù)庫中的數(shù)據(jù)
UPDATE 語句用于在數(shù)據(jù)庫表中修改數(shù)據(jù)。
語法
注釋:SQL 對大小寫不敏感。UPDATE 與 update 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query( 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。
例子
稍早時,我們在本教程中創(chuàng)建了一個名為 "Person" 的表。它看起來類似這樣:
下面的例子更新 "Person" 表的一些數(shù)據(jù):
在這次更新后,"Person" 表格是這樣的:
PHP MySQL Delete From
DELETE FROM 語句用于從數(shù)據(jù)庫表中刪除行。
刪除數(shù)據(jù)庫中的數(shù)據(jù)
DELETE FROM 語句用于從數(shù)據(jù)庫表中刪除記錄。
語法
注釋:SQL 對大小寫不敏感。DELETE FROM 與 delete from 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query( 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。
例子
稍早時,我們在本教程中創(chuàng)建了一個名為 "Person" 的表。它看起來類似這樣:
下面的例子刪除 "Person" 表中所有 LastName='Griffin' 的記錄:
在這次刪除之后,表是這樣的:
PHP Database ODBC
ODBC 指的是(Application Programming Interface,API),使我們有能力連接到某個數(shù)據(jù)源(比如一個 MS Access 數(shù)據(jù)庫)。
創(chuàng)建 ODBC 連接
通過一個 ODBC 連接,您可以連接到您的網絡中的任何計算機上的任何數(shù)據(jù)庫,只要 ODBC 連接是可用的。
這是創(chuàng)建到達 MS Access 數(shù)據(jù)的 ODBC 連接的方法:
在控制面板中打開管理工具
雙擊其中的數(shù)據(jù)源 (ODBC) 圖標
選擇系統(tǒng) DSN 選項卡
點擊系統(tǒng) DSN 選項卡中的“添加”按鈕
選擇 Microsoft Access Driver。點擊完成。
在下一個界面,點擊“選擇”來定位數(shù)據(jù)庫。
為這個數(shù)據(jù)庫取一個數(shù)據(jù)源名 (DSN)。
點擊確定。
請注意,必須在您的網站所在的計算機上完成這個配置。如果您的計算機上正在運行 Internet 信息服務器 (IIS),上面的指令會生效,但是假如您的網站位于遠程服務器,您必須擁有對該服務器的物理訪問權限,或者請您的主機提供商為您建立 DSN。
連接到 ODBC
odbc_connect() 函數(shù)用于連接到 ODBC 數(shù)據(jù)源。該函數(shù)有四個參數(shù):數(shù)據(jù)源名、用戶名、密碼以及可選的指針類型參數(shù)。
odbc_exec() 函數(shù)用于執(zhí)行 SQL 語句。
例子
下面的例子創(chuàng)建了到達名為 northwind 的 DSN 的連接,不沒有用戶名和密碼。然后創(chuàng)建并執(zhí)行一條 SQL 語句:
取回記錄
odbc_fetch_row() 函數(shù)用于從結果集中返回記錄。如果能夠返回行,則返回 true,否則返回 false。
該函數(shù)有兩個參數(shù):ODBC 結果標識符和可選的行號:
從記錄中取回字段
odbc_result() 函數(shù)用于從記錄中讀取字段。該函數(shù)有兩個參數(shù):ODBC 結果標識符和字段編號或名稱。
下面的代碼行從記錄中返回第一個字段的值:
The code line below returns the value of a field called "CompanyName":
關閉 ODBC 連接
odbc_close()函數(shù)用于關閉 ODBC 連接。
ODBC 實例
下面的例子展示了如何首先創(chuàng)建一個數(shù)據(jù)庫連接,然后是結果集,然后在 HTML 表格中顯示數(shù)據(jù)。
MySQL 是最流行的開源數(shù)據(jù)庫服務器。
什么是 MySQL?
MySQL 是一種數(shù)據(jù)庫。數(shù)據(jù)庫定義了存儲信息的結構。
在數(shù)據(jù)庫中,存在著一些表。類似 HTML 表格,數(shù)據(jù)庫表含有行、列以及單元。
在分類存儲信息時,數(shù)據(jù)庫非常有用。一個公司的數(shù)據(jù)庫可能擁有這些表:"Employees", "Products", "Customers" 以及 "Orders"。
數(shù)據(jù)庫表
數(shù)據(jù)庫通常包含一個或多個表。每個表都一個名稱(比如 "Customers" 或 "Orders")。每個表包含帶有數(shù)據(jù)的記錄(行)。
下面是一個名為 "Persons" 的表的例子:

上面的表含有三個記錄(每個記錄是一個人)和四個列(LastName, FirstName, Address 以及 City)。
查詢
查詢是一種詢問或請求。
通過 MySQL,我們可以向數(shù)據(jù)庫查詢具體的信息,并得到返回的記錄集。
請看下面的查詢:
SELECT LastName FROM Persons
上面的查詢選取了 Persons 表中 LastName 列的所有數(shù)據(jù),并返回類似這樣的記錄集:

下載 MySQL 數(shù)據(jù)庫
如果您的 PHP 服務器沒有 MySQL 數(shù)據(jù)庫,可以在此下載 MySQL:http://www.mysql.com/downloads/index.html
Facts About MySQL Database
關于 MySQL 的一點很棒的特性是,可以對它進行縮減,來支持嵌入的數(shù)據(jù)庫應用程序。也許正因如此,許多人認為 MySQL 僅僅能處理中小型的系統(tǒng)。
事實上,對于那些支持巨大數(shù)據(jù)和訪問量的網站,MySQL 是事實上的標準數(shù)據(jù)庫(比如 Friendster, Yahoo, Google)。這個地址提供了使用 MySQL 的公司的概覽:http://www.mysql.com/customers/。
PHP MySQL 連接數(shù)據(jù)庫
免費的 MySQL 數(shù)據(jù)庫通常是通過 PHP 來使用的。
連接到一個 MySQL 數(shù)據(jù)庫
在您能夠訪問并處理數(shù)據(jù)庫中的數(shù)據(jù)之前,您必須創(chuàng)建到達數(shù)據(jù)庫的連接。
在 PHP 中,這個任務通過 mysql_connect() 函數(shù)完成。
語法
mysql_connect(servername,username,password);

注釋:雖然還存在其他的參數(shù),但上面列出了最重要的參數(shù)。請訪問 W3School 提供的 PHP MySQL 參考手冊,獲得更多的細節(jié)信息。
例子
在下面的例子中,我們在一個變量中 ($con) 存放了在腳本中供稍后使用的連接。如果連接失敗,將執(zhí)行 "die" 部分:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } // some code ?>
關閉連接
腳本一結束,就會關閉連接。如需提前關閉連接,請使用 mysql_close() 函數(shù)。
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } // some code mysql_close($con); ?>
PHP MySQL 創(chuàng)建數(shù)據(jù)庫和表
數(shù)據(jù)庫存有一個或多個表。
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 語句用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫。
語法
CREATE DATABASE database_name
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。此函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。
例子
在下面的例子中,我們創(chuàng)建了一個名為 "my_db" 的數(shù)據(jù)庫:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Database created"; } else { echo "Error creating database: " . mysql_error(); } mysql_close($con); ?>
創(chuàng)建表
CREATE TABLE 用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫表。
語法
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, ....... )
為了執(zhí)行此命令,我必須向 mysql_query() 函數(shù)添加 CREATE TABLE 語句。
例子
下面的例子展示了如何創(chuàng)建一個名為 "person" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } // Create database if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Database created"; } else { echo "Error creating database: " . mysql_error(); } // Create table in my_db database mysql_select_db("my_db", $con); $sql = "CREATE TABLE person ( FirstName varchar(15), LastName varchar(15), Age int )"; mysql_query($sql,$con); mysql_close($con); ?>
重要事項:在創(chuàng)建表之前,必須首先選擇數(shù)據(jù)庫。通過 mysql_select_db() 函數(shù)選取數(shù)據(jù)庫。
注釋:當您創(chuàng)建 varchar 類型的數(shù)據(jù)庫字段時,必須規(guī)定該字段的最大長度,例如:varchar(15)。
MySQL 數(shù)據(jù)類型


主鍵和自動遞增字段
每個表都應有一個主鍵字段。
主鍵用于對表中的行進行唯一標識。每個主鍵值在表中必須是唯一的。此外,主鍵字段不能為空,這是由于數(shù)據(jù)庫引擎需要一個值來對記錄進行定位。
主鍵字段永遠要被編入索引。這條規(guī)則沒有例外。你必須對主鍵字段進行索引,這樣數(shù)據(jù)庫引擎才能快速定位給予該鍵值的行。
下面的例子把 personID 字段設置為主鍵字段。主鍵字段通常是 ID 號,且通常使用 AUTO_INCREMENT 設置。AUTO_INCREMENT 會在新紀錄被添加時逐一增加該字段的值。要確保主鍵字段不為空,我們必須向該字段添加 NOT NULL 設置。
例子
$sql = "CREATE TABLE person ( personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), FirstName varchar(15), LastName varchar(15), Age int )"; mysql_query($sql,$con);
PHP MySQL Insert Into
INSERT INTO 語句用于向數(shù)據(jù)庫表中插入新紀錄。
向數(shù)據(jù)庫表插入數(shù)據(jù)
INSERT INTO 語句用于向數(shù)據(jù)庫表添加新紀錄。
語法
INSERT INTO table_name VALUES (value1, value2,....)
您還可以規(guī)定希望在其中插入數(shù)據(jù)的列:
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)
注釋:SQL 語句對大小寫不敏感。INSERT INTO 與 insert into 相同。
為了讓 PHP 執(zhí)行該語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。
例子
在前面的章節(jié),我們創(chuàng)建了一個名為 "Person" 的表,有三個列:"Firstname", "Lastname" 以及 "Age"。我們將在本例中使用同樣的表。下面的例子向 "Person" 表添加了兩個新紀錄:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); mysql_query("INSERT INTO person (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')"); mysql_query("INSERT INTO person (FirstName, LastName, Age) VALUES ('Glenn', 'Quagmire', '33')"); mysql_close($con); ?>
把來自表單的數(shù)據(jù)插入數(shù)據(jù)庫
現(xiàn)在,我們創(chuàng)建一個 HTML 表單,這個表單可把新紀錄插入 "Person" 表。
這是這個 HTML 表單:
<html> <body> <form action="insert.php" method="post"> Firstname: <input type="text" name="firstname" /> Lastname: <input type="text" name="lastname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
當用戶點擊上例中 HTML 表單中的提交按鈕時,表單數(shù)據(jù)被發(fā)送到 "insert.php"。"insert.php" 文件連接數(shù)據(jù)庫,并通過 $_POST 變量從表單取回值。然后,mysql_query() 函數(shù)執(zhí)行 INSERT INTO 語句,一條新的記錄會添加到數(shù)據(jù)庫表中。
下面是 "insert.php" 頁面的代碼:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); $sql="INSERT INTO person (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo "1 record added"; mysql_close($con) ?>
PHP MySQL Select
SELECT 語句用于從數(shù)據(jù)庫中選取數(shù)據(jù)。
從數(shù)據(jù)庫表中選取數(shù)據(jù)
SELECT 語句用于從數(shù)據(jù)庫中選取數(shù)據(jù)。
語法
SELECT column_name(s) FROM table_name
注釋:SQL 語句對大小寫不敏感。SELECT 與 select 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 MySQL 發(fā)送查詢或命令。
例子
下面的例子選取存儲在 "Person" 表中的所有數(shù)據(jù)(* 字符選取表中所有數(shù)據(jù)):
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); $result = mysql_query("SELECT * FROM person"); while($row = mysql_fetch_array($result)) { echo $row['FirstName'] . " " . $row['LastName']; echo "<br />"; } mysql_close($con); ?>
上面這個例子在 $result 變量中存放由 mysql_query() 函數(shù)返回的數(shù)據(jù)。接下來,我們使用 mysql_fetch_array() 函數(shù)以數(shù)組的形式從記錄集返回第一行。每個隨后對 mysql_fetch_array() 函數(shù)的調用都會返回記錄集中的下一行。 while loop 語句會循環(huán)記錄集中的所有記錄。為了輸出每行的值,我們使用了 PHP 的 $row 變量 ($row['FirstName'] 和 $row['LastName'])。
以上代碼的輸出:
Peter Griffin
Glenn Quagmire
在 HTML 表格中顯示結果
下面的例子選取的數(shù)據(jù)與上面的例子相同,但是將把數(shù)據(jù)顯示在一個 HTML 表格中:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); $result = mysql_query("SELECT * FROM person"); echo "<table border='1'> <tr> <th>Firstname</th> <th>Lastname</th> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['FirstName'] . "</td>"; echo "<td>" . $row['LastName'] . "</td>"; echo "</tr>"; } echo "</table>"; mysql_close($con); ?>
以上代碼的輸出:

PHP MySQL Where 子句
如需選取匹配指定條件的數(shù)據(jù),請向 SELECT 語句添加 WHERE 子句。
WHERE 子句
如需選取匹配指定條件的數(shù)據(jù),請向 SELECT 語句添加 WHERE 子句。
語法
SELECT column FROM table WHERE column operator value
下面的運算符可與 WHERE 子句一起使用:

注釋:SQL 語句對大小寫不敏感。WHERE 與 where 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。
例子
下面的例子將從 "Person" 表中選取所有 FirstName='Peter' 的行:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); $result = mysql_query("SELECT * FROM person WHERE FirstName='Peter'"); while($row = mysql_fetch_array($result)) { echo $row['FirstName'] . " " . $row['LastName']; echo "<br />"; } ?>
以上代碼的輸出:
Peter Griffin
PHP MySQL Order By 關鍵詞
ORDER BY 關鍵詞用于對記錄集中的數(shù)據(jù)進行排序。
ORDER BY 關鍵詞
ORDER BY 關鍵詞用于對記錄集中的數(shù)據(jù)進行排序。
語法
SELECT column_name(s) FROM table_name ORDER BY column_name
注釋:SQL 對大小寫不敏感。ORDER BY 與 order by 等效。
例子
下面的例子選取 "Person" 表中的存儲的所有數(shù)據(jù),并根據(jù) "Age" 列對結果進行排序:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); $result = mysql_query("SELECT * FROM person ORDER BY age"); while($row = mysql_fetch_array($result)) { echo $row['FirstName']; echo " " . $row['LastName']; echo " " . $row['Age']; echo "<br />"; } mysql_close($con); ?>
以上代碼的輸出:
Glenn Quagmire 33
Peter Griffin 35
升序或降序的排序
如果您使用 ORDER BY 關鍵詞,記錄集的排序順序默認是升序(1 在 9 之前,"a" 在 "p" 之前)。
請使用 DESC 關鍵詞來設定降序排序(9 在 1 之前,"p" 在 "a" 之前):
SELECT column_name(s) FROM table_name ORDER BY column_name DESC
根據(jù)兩列進行排序
可以根據(jù)多個列進行排序。當按照多個列進行排序時,只有第一列相同時才使用第二列:
SELECT column_name(s) FROM table_name ORDER BY column_name1, column_name2
PHP MySQL Update
UPDATE 語句用于中修改數(shù)據(jù)庫表中的數(shù)據(jù)。
更新數(shù)據(jù)庫中的數(shù)據(jù)
UPDATE 語句用于在數(shù)據(jù)庫表中修改數(shù)據(jù)。
語法
UPDATE table_name SET column_name = new_value WHERE column_name = some_value
注釋:SQL 對大小寫不敏感。UPDATE 與 update 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query( 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。
例子
稍早時,我們在本教程中創(chuàng)建了一個名為 "Person" 的表。它看起來類似這樣:

下面的例子更新 "Person" 表的一些數(shù)據(jù):
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); mysql_query("UPDATE Person SET Age = '36' WHERE FirstName = 'Peter' AND LastName = 'Griffin'"); mysql_close($con); ?>
在這次更新后,"Person" 表格是這樣的:

PHP MySQL Delete From
DELETE FROM 語句用于從數(shù)據(jù)庫表中刪除行。
刪除數(shù)據(jù)庫中的數(shù)據(jù)
DELETE FROM 語句用于從數(shù)據(jù)庫表中刪除記錄。
語法
DELETE FROM table_name WHERE column_name = some_value
注釋:SQL 對大小寫不敏感。DELETE FROM 與 delete from 等效。
為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query( 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。
例子
稍早時,我們在本教程中創(chuàng)建了一個名為 "Person" 的表。它看起來類似這樣:

下面的例子刪除 "Person" 表中所有 LastName='Griffin' 的記錄:
<?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); mysql_query("DELETE FROM Person WHERE LastName='Griffin'"); mysql_close($con); ?>
在這次刪除之后,表是這樣的:

PHP Database ODBC
ODBC 指的是(Application Programming Interface,API),使我們有能力連接到某個數(shù)據(jù)源(比如一個 MS Access 數(shù)據(jù)庫)。
創(chuàng)建 ODBC 連接
通過一個 ODBC 連接,您可以連接到您的網絡中的任何計算機上的任何數(shù)據(jù)庫,只要 ODBC 連接是可用的。
這是創(chuàng)建到達 MS Access 數(shù)據(jù)的 ODBC 連接的方法:
在控制面板中打開管理工具
雙擊其中的數(shù)據(jù)源 (ODBC) 圖標
選擇系統(tǒng) DSN 選項卡
點擊系統(tǒng) DSN 選項卡中的“添加”按鈕
選擇 Microsoft Access Driver。點擊完成。
在下一個界面,點擊“選擇”來定位數(shù)據(jù)庫。
為這個數(shù)據(jù)庫取一個數(shù)據(jù)源名 (DSN)。
點擊確定。
請注意,必須在您的網站所在的計算機上完成這個配置。如果您的計算機上正在運行 Internet 信息服務器 (IIS),上面的指令會生效,但是假如您的網站位于遠程服務器,您必須擁有對該服務器的物理訪問權限,或者請您的主機提供商為您建立 DSN。
連接到 ODBC
odbc_connect() 函數(shù)用于連接到 ODBC 數(shù)據(jù)源。該函數(shù)有四個參數(shù):數(shù)據(jù)源名、用戶名、密碼以及可選的指針類型參數(shù)。
odbc_exec() 函數(shù)用于執(zhí)行 SQL 語句。
例子
下面的例子創(chuàng)建了到達名為 northwind 的 DSN 的連接,不沒有用戶名和密碼。然后創(chuàng)建并執(zhí)行一條 SQL 語句:
$conn=odbc_connect('northwind','',''); $sql="SELECT * FROM customers"; $rs=odbc_exec($conn,$sql);
取回記錄
odbc_fetch_row() 函數(shù)用于從結果集中返回記錄。如果能夠返回行,則返回 true,否則返回 false。
該函數(shù)有兩個參數(shù):ODBC 結果標識符和可選的行號:
odbc_fetch_row($rs)
從記錄中取回字段
odbc_result() 函數(shù)用于從記錄中讀取字段。該函數(shù)有兩個參數(shù):ODBC 結果標識符和字段編號或名稱。
下面的代碼行從記錄中返回第一個字段的值:
$compname=odbc_result($rs,1);
The code line below returns the value of a field called "CompanyName":
$compname=odbc_result($rs,"CompanyName");
關閉 ODBC 連接
odbc_close()函數(shù)用于關閉 ODBC 連接。
odbc_close($conn);
ODBC 實例
下面的例子展示了如何首先創(chuàng)建一個數(shù)據(jù)庫連接,然后是結果集,然后在 HTML 表格中顯示數(shù)據(jù)。
<html> <body> <?php $conn=odbc_connect('northwind','',''); if (!$conn) {exit("Connection Failed: " . $conn);} $sql="SELECT * FROM customers"; $rs=odbc_exec($conn,$sql); if (!$rs) {exit("Error in SQL");} echo "<table><tr>"; echo "<th>Companyname</th>"; echo "<th>Contactname</th></tr>"; while (odbc_fetch_row($rs)) { $compname=odbc_result($rs,"CompanyName"); $conname=odbc_result($rs,"ContactName"); echo "<tr><td>$compname</td>"; echo "<td>$conname</td></tr>"; } odbc_close($conn); echo "</table>"; ?> </body> </html>
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
