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”的记录删除。