第二十五课:操作MySQL数据库(二)
上一节课我们熟习了用phpMyAdmin工具来操作MySQL数据库,作为一般的网站来说,所使用的都是虚拟主机,服务商已经为我们建立好了数据库,我们可以用phpMyAdmin来建立数据表,可以导入备份的数据。网站运行需要存取数据时就不能依靠工具了,就要用程序来操作数据库。其实操作数据库还是比较简单的,为什么呢?因为对数据库一般只有四种操作:插入,修改,删除,查询。每一种操作也只用几个函数就能实现。
这节课我们学习“连接”数据库和“插入”数据。
一, 连接数据库
操作数据库首先要建立与数据库的连接,如何连接数据库呢?请看例子25-1:
//
数据库连接参数
define
(
"
ServerName
"
,
"
localhost
"
);
//
定义服务器名
define
(
"
UserName
"
,
"
root
"
);
//
定义用户名
define
(
"
PassWord
"
,
""
);
//
定义密码
define
(
"
DBName
"
,
"
mytest
"
);
//
定义数据库名
//连接数据库
mysql_connect
(ServerName
,
UserName
,
PassWord) or
die
(
"
对不起,不能连接到数据库
"
);
mysql_select_db
(DBName) or
die
(
"
对不起,不能连接到数据库……
"
);
mysql_connect()是数据库连接函数,其语法格式为:
resource
mysql_connect ( [
string
server [,
string
username [,
string
password [,
bool
new_link [,
int
client_flags]]]]] )
server
MySQL 服务器。可以包括端口号,一般都是本机所以是 localhost 。
username
用户名。默认值是服务器进程所有者的用户名。
password
密码。默认值是空密码。
如果你购买的是虚拟主机,服务商会把上述参数告诉你。如果你用了我们的安装程序在本机上做测试,那么服务器是:localhost,用户名是:root,密码为空。
mysql_select_db()是选择 MySQL 数据库函数,在上节课中我们建立了一个名为mytest的数据库。
上述两个函数的详细介绍你可以看PHP手册。上面的程序如果不出错我们就与数据库建立了连接。
二,插入数据
还记得我们上节课建立的一个数据表是什么吗?对了,就是一个用来记录学生成绩的数据表“
chengji”,这个数据表中有这样几个字段:sID,sName ,yuWen ,shuXue ,yinYu
sID 是自动编号,sName 记录学生姓名,yuWen 记录语文成绩,shuXue 记录数学成绩,yinYu 记录英语成绩。
现在有个叫李勇的学生的成绩分别是:81, 81, 90。怎么样通过程序插入到数据库中呢? 请看下面的例子25-2:
$name
=
'
李勇
'
;
$yw
=
81
;
$sx
=
81
;
$yy
=
90
;
mysql_query
(
"
INSERT INTO chengji (`sID`,`sName`,`yuWen`,`shuXue`,`yinYu`) VALUES ('', '$name','$yw', '$sx', '$yy')
"
);
if
(
mysql_affected_rows
()
>
0
)
echo
'
数据添加成功!
'
;
else
echo
'
数据添加失败!
'
;
上面的代码中,
mysql_query() 函数是发送一条 MySQL 语句,参数就是MySQL查询语句。
mysql_affected_rows() 取得前一次 MySQL 操作所影响的记录行数。想学习更多的MySQL语句的写法可以看相关的资料。
如果每个字段都赋值,也可以这样写查询语句25-3:
$name
=
'
李勇
'
;
$yw
=
81
;
$sx
=
81
;
$yy
=
90
;
mysql_query
(
"
INSERT INTO chengji VALUES ('', '$name','$yw', '$sx', '$yy')
"
);
if
(
mysql_affected_rows
()
>
0
)
echo
'
数据添加成功!
'
;
else
echo
'
数据添加失败!
'
;
把上面的代码写到(包含到)同一个文件里,程序运行后,我们用phpMyAdmin工具再来看
chengji表中就会发现又添加了一条数据:
图片附件:
AE72.GIF (2006-12-26 22:09, 5.13 K)
你学会如何用程序插入数据了吗?下面我要出一道作业题了:你能设计一个用网页表单来添加数据的程序吗?