PHP之七_PHP编程访问MySQL数据库
在前面的两个小节中,我们分别介绍了PHP的表单数据接收,和MySQL数据库的表结构设计。
在本小节中,将介绍PHP编程访问MySQL数据库。
在学习完这个小节后,我们就可以把表单提交过来的用户注册信息保存到MySQL数据库中了。
一、PHP中常用的MySQL操作函数
通常要完成一个数据库的操作,需要按如下步骤来执行:
× 连接MySQL数据库服务器
× 选择数据库
× 向MySQL数据库发送SQL语句
× 关闭数据库连接
1. mysql_connect()
这个函数用于连接MySQL数据库服务器。mysql_connect() 函数打开的是非持久的MySQL连接,所谓的非持久,就是数据库连接在脚本执行完成后会自动关闭。
语法:
mysql_connect(server, user, pwd);
参数说明:
server:服务器,通常格式是:“服务器名或IP:端口号”,例如:“localhost:3306”,也可以直接写“localhost”。
user:用户,在测试中我们使用root用户,但在实际应用中,应该专门创建一个用户,因为root用户是超级用户,权限过大。
pwd:密码,在WAMP软件中,root用户的密码为空。在实际应用中,应修改root用户的密码。
返回值:
如果连接成功,返回一个数据库连接。如果连接失败,返回false。
2. mysql_select_db()
这个函数用于选择数据库。
前一节中,我们说到,每一个应用程序的数据应保存在一个数据库中。
所以连接上MySQL数据库服务器后,应先选择数据库。
语法:
mysql_select_db(database, connection);
参数:
database:要选择的数据库名。
connection:MySQL数据库连接。
返回值:
如果选择成功,返回true。如果连接失败,返回false。
示例:
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testdb', $con);
3. mysql_query()
这个函数用于执行SQL语句。
要维护表中的数据,只能通过SQL语句来完成。
========================================
SQL语句有增、删、改、查4种。
这里简单地示范一下。
假设有一个示例表,名为TBL_BOOK(图书表),有4列:BOOK_ID(主键、自增长)、BOOK_NAME(图书名称、字符型)、BOOK_PRICE(图书价格、浮点型)、BUY_DATE(购买日期、日期型)。
增:INSERT INTO TBL_BOOK(BOOK_NAME, BOOK_PRICE, BUY_DATE) VALUES('十万个为什么', 50.0, now());
删:DELETE FROM TBL_BOOK WHERE BOOK_ID=1;
改:UPDATE TBL_BOOK SET BOOK_NAME='十一万个为什么', BUY_DATE=now() WHERE BOOK_ID=1;
查:SELECT * FROM TBL_BOOK;
注:新增时,自增长列不需要赋值。now()函数取得系统当前时间。
========================================
mysql_query()函数
语法:
mysql_query(query, connection);
参数:
query:需要执行的SQL语句。
connection:MySQL数据库连接。
返回值:
如果SQL语句是“SELECT”语句,查询成功,则返回查询的结果集,SQL语句执行失败,则返回false。
如果SQL语句是增、删、改语句,执行成功,返回true,执行失败,返回false。
4. mysql_close()
这个函数用于关闭数据库连接。这个操作不是必需的,因为非持久的数据库连接在脚本执行完成后会自动关闭。
语法:
mysql_close(connection);
参数:
connection:MySQL数据库连接。
返回值:执行成功返回true,执行失败返回false。
二、完整代码
<?php
$name = $_POST["name"];
$pass = $_POST["pass"];
$pass2 = $_POST["pass2"];
$email = $_POST["email"];
$sex = $_POST["sex"];
$love = $_POST["love"];
$love2 = implode(',', $love);
$con = mysql_connect('localhost', 'root', '')
or die('连接数据库错误:' . mysql_error());
mysql_select_db('testdb', $con)
or die('选择数据库错误:' . mysql_error());
$sql="insert into tbl_user(user_name, pass, email, sex, love, reg_date) values('$name', '$pass', '$email', '$sex', '$love2', now())";
mysql_query("set names utf8");
mysql_query($sql)
or die('SQL语句错误:' . mysql_error());;
echo '注册成功!';
mysql_close($con);
?>
在这段代码中,前半部分是接收表单数据。
然后首先连接数据库,其次是选择数据库,最后向数据库发送一条INSERT指令。
有几点说明一下:
1. 在每个操作数据库的函数后,都加上or die()语句,可以在操作数据库出错时,中止脚本的执行。
2. 为了防止乱码,在发送SQL指令前,先发送一条:set names utf8,可以保证编码的正确性。
三、测试
在浏览器中输入:http://localhost/demo2.html
当提示“保存成功!”时,打开phpMyAdmin界面,可以看到tbl_user表中已经多了一条记录: