本小節演示如何使用SQL語句及PHP程序創建和使用一個簡單的數據庫表。
表2-1所示是一個名為「wx_user」的表。
表2-1 wx_user表
wx_user表含有4個列(id、openid、username及telephone)和兩條記錄(每條記錄對應一個人)。
1.創建數據庫表
下面是建立一個數據庫表「wx_user」的SQL腳本。
CREATE TABLE IF NOT EXISTS 'wx_user' ( 'id' int(7) NOT NULL AUTO_INCREMENT, 'openid' varchar(30) NOT NULL, 'username' varchar(20) NOT NULL, 'telephone' varchar(16) NOT NULL, PRIMARY KEY ('id'), UNIQUE KEY 'openid' ('openid') ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
創建數據庫表時使用CREATE TABLE命令。命令中間部分的內容是創建條件,包括列名、列的數據類型及長度、是否允許為空、是否有自增屬性、是否是唯一Key、是否為主鍵等。
在phpMyAdmin的SQL運行框中,運行上述代碼後,將創建一個名為「wx_user」的表,如圖2-23所示。
圖2-23 wx_user表
2.插入數據
向數據庫表插入數據時使用INSERT INTO語句。其語法如下。
INSERT INTO table_name VALUES (value1, value2,...)
在本例中,插入語句可以這樣寫。
INSERT INTO 'wx_user' ('id', 'openid', 'username', 'telephone') VALUES (NULL, 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q', '方倍', '15987654321');
下面是使用PHP程序進行提交的代碼。
<?php $con = mysql_connect("localhost:3306","root","root"); mysql_query("SET NAMES 'UTF8'"); mysql_select_db("book", $con); mysql_query("INSERT INTO 'wx_user' ('id', 'openid', 'username', 'telephone') VALUES (NULL, 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q', '方倍', '15987654321');"); mysql_query("INSERT INTO 'wx_user' ('id', 'openid', 'username', 'telephone') VALUES (NULL, 'o7Lp5t6n59De2380C3Kxkc93E2x3', '李四', '13412341234');"); mysql_close($con); ?>
在上述代碼中,首先創建到數據庫的連接,這是通過mysql_connect()函數完成的,連接的主機為「localhost」,端口為「3306」,賬號和密碼都為「root」。然後通過「SET NAMES'UTF8'」命令設置字符集為UTF8,這樣就能正常顯示中文。之後通過mysql_select_db()函數設置要連接的數據庫「book」。最後使用mysql_query()函數向wx_user表中插入兩條記錄。執行完畢後,使用mysql_close()函數關閉MySQL連接。
3.查詢數據
從數據庫中查詢數據時使用SELECT語句。其語法如下。
SELECT column_name(s) FROM table_name
在本例中,查詢語句可以這樣寫。
SELECT * FROM 'wx_user' WHERE 'openid' = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';
下面是使用PHP程序進行查詢的代碼。
<?php $con = mysql_connect("localhost:3306","root","root"); mysql_query("SET NAMES 'UTF8'"); mysql_select_db("book", $con); $result = mysql_query("SELECT * FROM 'wx_user' WHERE 'openid' = 'o7Lp5t6n59DeX3U 0C7Kric9qEx-Q';"); while($row = mysql_fetch_array($result)) { echo $row['username']." ".$row['telephone']; echo "<br />"; } mysql_close($con); ?>
上述代碼查詢openid為「o7Lp5t6n59De-X3U0C7Kric9qEx-Q」的數據,並且返回該條記錄的username和telephone字段。執行後,返回的內容如圖2-24所示。
圖2-24 查詢數據
4.修改數據
修改數據庫表中的數據時使用UPDATE語句。其語法如下。
UPDATE table_name SET column_name = new_value WHERE column_name = some_value
在本例中,修改語句可以這樣寫:
UPDATE 'wx_user' SET 'telephone' = '15999521234' WHERE 'openid' = 'o7Lp5t6n59DeX3U 0C7Kric9qEx-Q';
下面是使用PHP程序進行修改的代碼。
<?php $con = mysql_connect("localhost:3306","root","root"); mysql_query("SET NAMES 'UTF8'"); mysql_select_db("book", $con); mysql_query("UPDATE 'wx_user' SET 'telephone' = '15999521234' WHERE 'openid' = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';"); mysql_close($con); ?>
上述代碼執行後,會將openid值為「o7Lp5t6n59DeX3U0C7Kric9qEx-Q」的記錄中的telephone值更改為「15999521234」。
5.刪除數據
從數據庫表中刪除記錄時使用DELETE FROM語句。其語法如下。
DELETE FROM table_name WHERE column_name = some_value
在本例中,刪除語句可以這樣寫。
DELETE FROM 'wx_user' WHERE 'openid' = 'o7Lp5t6n59DeX3U0C7Kric9qEx-Q';
下面是使用PHP程序進行刪除的代碼。
<?php $con = mysql_connect("localhost:3306","root","root"); mysql_query("SET NAMES 'UTF8'"); mysql_select_db("book", $con); mysql_query("DELETE FROM 'wx_user' WHERE 'openid' = 'o7Lp5t6n59DeX3U0C7Kric9qEx -Q';"); mysql_close($con); ?>
上述代碼執行後,會將openid值為「o7Lp5t6n59DeX3U0C7Kric9qEx-Q」的記錄刪除。