首先声明,本章笔记主要介绍使用PHP进行MySQL数据库的应用编程,内容深度仅适用于计算机二级MySQL。因为PHP又是另一门编程语言,其内容不可能在一篇博客里讨论完。关于PHP的语法,请自行查阅,可以参考教程 PHP菜鸟教程。
使用PHP进行MySQL数据库编程的基本步骤如下:
- 首先建立与MySQL数据库服务器的连接。
- 然后选择要对其操作的数据库。
- 再执行相应的数据库操作,包括对数据的添加、删除、修改、查询等。
- 最后关闭与MySQL数据库服务器的连接。
以上各步骤,均通过PHP内置的函数库 mysql
中相应的函数来实现。
建立与MySQL数据库服务器的连接
在php 5 中,可以使用函数mysql_connect()
和函数mysql_pconnect()
来建立与MySQL数据库服务器的连接。前者用于建立非持久连接,后者用于建立持久连接。
1、使用函数 mysql_connect() 建立非持久连接
语法格式为:
mysql_connect(servername, username, password)
/*
servername: 服务器
username: 用户
password: 密码
*/
通常会将mysql_connect()函数返回的连接标识号保存在某个变量中,以便PHP程序使用。实例说明:
//这里使用了con变量保存连接标识,后面的if语句使用到了该变量。
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
if(!$con)
{
echo "连接失败!";
}
else
{
echo "连接成功!";
}
?>
建立数据库连接是数据库操作的前提条件,因此在执行mysql_connect()
之后,应当立即进行判断是否连接成功。在PHP中,一切非 0 值会被认为是逻辑值 TRUE
,而数值 0 会被当做逻辑值 FALSE
。函数连接执行后,返回的连接标识实质上是一个非 0 值,会被当做 TRUE
来处理。因而,可以使用if语句进行判断。
2、使用函数 mysql_pconnect() 建立非持久连接
其语法格式和实际用法与 mysql_connect() 基本相同:
mysql_pconnect(servername, username, password)
但存在以下几点区别:
- 函数
mysql_connect()
建立的连接,当数据库操作结束后会自动关闭,而函数mysql_pconnect()
建立的连接会一直存在,是一种持久的连接。 - 对于函数
mysql_pconnect()
而言,每次连接前都会检查是否使用了同样的用户,如果有,则直接使用上次的连接,而不会重复打开。 - 函数
mysql_connect()
建立的连接,可以使用函数mysql_close()
关闭。而mysql_pconnect()
不能。
选择数据库
在执行具体的数据库操作之前,应当首先选定相应的数据库。在PHP 5 中,可以使用函数mysql_select_db()
来选定某个数据库,其语法格式为:
mysql_select_db(database, connection)
/*
database: 数据库名称
connection: 指定的数据库连接,可选项,如不指定,则使用上一个打开的连接
*/
实例说明:
//选择数据库db_school
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
if(mysql_errno())
{
echo "数据库连接失败!";
die(); //终止运行
}
mysql_select_db("db_school", $con);
if(mysql_errno())
{
echo "数据库选择失败!";
die();
}
echo "数据库选择成功!";
?>
函数mysql_errno()
和mysql_error()
的功能就是分别获取PHP程序中前一个MySQL函数执行后的错误编号,和错误提示信息。当前一个函数执行成功后,他们会分别返回数值0和空字符串,因此,这两个函数也可以用来作为判断条件。
执行数据库操作
选定数据库之后,就可以执行具体的数据库操作了,在PHP 5 中,可以使用函数mysql_query()
提交并执行SQL语句。其语法格式为:
mysql_query(query, connection)
/*
query: sql语句
connection: 指定连接
*/
1、数据添加
//在tb_student表中添加“张三”的学生信息
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
mysql_select_db("db_school", $con);
mysql_query("set names 'gbk'"); //设置中文字符集
$sql = "insert into tb_student(studentNo, studentName)";
$sql = $sql."values('20131101', '张三');";
if(mysql_query($sql, $con))
{
echo"添加成功";
}
else
{
echo"添加失败";
}
?>
2、数据修改
//在tb_student表中修改“张三”的学生的籍贯为“广州”
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
mysql_select_db("db_school", $con);
mysql_query("set names 'gbk'"); //设置中文字符集
$sql = "update tb_student set native='广州'";
$sql = $sql."where studentName='张三';";
if(mysql_query($sql, $con))
{
echo"修改成功";
}
else
{
echo"修改失败";
}
?>
3、数据删除
//在tb_student表中删除“张三”的信息
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
mysql_select_db("db_school", $con);
mysql_query("set names 'gbk'"); //设置中文字符集
$sql = "delete from tb_student";
$sql = $sql."where studentName='张三';";
if(mysql_query($sql, $con))
{
echo"删除成功";
}
else
{
echo"删除失败";
}
?>
4、数据查询
数据查询返回的结果不再是一个逻辑值,而是一个结果集。为了灵活处理结果集中的相关记录,PHP提供了一系列处理函数,常用的包括:读取函数mysql_fetch_array()
,读取记录数函数mysql_num_rows()
,读取记录指针函数mysql_data_seek()
等等。函数用法读者自行搜索哦。
//查询学号为“201314520”的学生姓名
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
mysql_select_db("db_school", $con);
mysql_query("set names 'gbk'"); //设置中文字符集
$sql = "select studentName from tb_student";
$sql = $sql."where studentNo='201314520';";
$result = mysql_query($sql, $con) //这里将结果集存入变量result
if($result)
{
echo"查询成功";
$array = mysql_fetch_array($result, mysql_num); //读取result中的指定记录,存入变量array中
if($array)
{
echo"读取到学生信息";
echo"所要查询学生的姓名是:".$array[0];
}
else echo"没有读取到信息";
}
else echo"查询失败";
?>
关闭数据库连接
数据操作执行完毕后,应及时关闭连接,释放系统资源。PHP 5 中,使用函数mysql_close()
来关闭数据库连接。这里注意只能关闭非持久连接。其语法格式为:
mysql_close(connection)
实例说明:
//关闭数据库连接
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
echo "已连接数据库服务器";
mysql_select_db("db_school", $con);
echo "已选择数据库";
mysql_close($con);
echo "已关闭数据库服务器连接";
?>
课后习题
<? php
$con = mysql_connect("localhost:3306", "root", "123456");
mysql_select_db("db_test", $con);
mysql_query("set names 'gbk'"); //设置中文字符集
$sql = "insert into content(content_id, subject, words, username, face, email, createtime)";
$sql = $sql."values(null, 'MySQL问题请教', 'MySQL中对表数据的操作有哪些?', 'MySQL初学者', 'face.jpg', 'tom@gmail.com', now());"; //这里注意分号的使用
if(mysql_query($sql, $con))
{
echo"留言成功添加";
}
else
{
echo"留言添加失败";
}
?>