微信公众平台开发:从零基础到ThinkPHP5高性能框架实践
上QQ阅读APP看书,第一时间看更新

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);
?>

图2-24 查询数据

上述代码查询openid为“o7Lp5t6n59De-X3U0C7Kric9qEx-Q”的数据,并且返回该条记录的username和telephone字段。执行后,返回的内容如图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”的记录删除。