讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 2.2.2 MySQL的使用 >

2.2.2 MySQL的使用

本小節演示如何使用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」的記錄刪除。