Web数据库实例
下一节我们开始学习一步步创建基于Web的数据库。首先,我们先建立数据库,并装入一些数据。完成这步后,我们就新建一些PHP 脚本,和数据库通信并看看全过程。
创建数据库
确认运行着MySQL服务器进程。如果没有的话,请手动启动它:
# /etc/rc.d/init.d/mysql start
现在我们以MySQL客户程序的管理员身份启动它,这次我们将看到需要输入密码的提示:
# mysql -u root -p
Enter password: newpassword
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 13 to server version: 3.22.21
Type 'help' for help.
mysql>
新建数据库
用命令:create database example 新建一个叫example的数据库。当使用MySQL客户程序的时候,请记住 在每个命令结束时加上;(分号)
mysql> create database example;
Query OK, 1 row affected (0.03 sec)
mysql> use example;
Database changed
新建一个表
在名字叫example的数据库中建立一个叫mytable的表:
mysql> CREATE TABLE mytable (
-> name CHAR(30),
-> phone CHAR(10)
-> );
Query OK, 0 rows affected (0.00 sec)
小技巧:很多Linux系统都使用bash的Shell,它可以显示你使用过的命令的历史,只需要用上下键即可,这样你可以节省很多时间去输入复杂的命令。
添加数据
现在我们向数据库输入些数据。例如向表中插入一些条目,以下是操作步骤:
mysql> INSERT INTO mytable VALUES ("Homer Simpson", "555-1234");
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO mytable VALUES ("Bart Simpson", "555-4321")
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO mytable VALUES ("Lisa Simpson", "555-3214");
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO mytable VALUES ("Marge Simpson", "555-2314");
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO mytable VALUES ("Maggie Simpson", "555-3142");
Query OK, 1 row affected (0.00 sec)
确认通过SELECT指令可以看到所有信息:
mysql> SELECT * FROM mytable;
+----------------+----------+
| name | phone |
+----------------+----------+
| Homer Simpson | 555-1234 |
| Bart Simpson | 555-4321 |
| Lisa Simpson | 555-3214 |
| Marge Simpson | 555-2314 |
| Maggie Simpson | 555-3142 |
+----------------+----------+
5 rows in set (0.00 sec)
新建数据库用户
我们已经建立了一个数据库并且输入了一些数据。现在必须新建一个用户帐号以便可以访问数据库,并且用GRANT命令赋予此用户特权:
mysql> GRANT usage
-> ON example.*
-> TO webuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此后就创建了一个新用户叫:webuser,这个用户只能从localhost连接到数据库并可以连接到example 数据库。下一步,我们必须指定webuser这个用户可以执行哪些操作:
mysql> GRANT select, insert, delete
-> ON example.*
-> TO webuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使webuser能够在每一个example数据库中的表执行SELECT,INSERT和DELETE等查询操作。现在我们结束操作并退出MySQL客户程序:
mysql> exit
Bye
创建完数据库后,我们可以使用PHP程序取出example数据库内部的数据并以HTML格式输出。
新建PHP脚本
为了使工作简单化,我们仅仅编写2个脚本。其中一个将所有的数据库条目都以列表的形式显示出来;另外一个则允许我们增加新的内容。
index.php3
在你的Web目录(通常是Apache的htdocs 或者html目录)下新建一个叫example的目录:
# cd /home/httpd/htdocs
# mkdir example
接着,在此目录下用任意的文本编辑器编写一个叫index.php3的PHP3脚本,其内容至少是:
Data from mytable
mysql_connect("localhost", "webuser", "");
$query = "SELECT name, phone FROM mytable";
$result = mysql_db_query("example", $query);
if ($result) {
echo "Found these entries in the database:";
";
while ($r = mysql_fetch_array($result)) {
$name = $r["name"];
$phone = $r["phone"];
echo "
}
echo "
} else {
echo "No data.";
}
mysql_free_result($result);
?>
add.php3
然后在同样目录下新编辑一个叫add.php3的脚本。此脚本完成两样事情:一:它会显示信息,提示用户向数据库添加数据;二:它会将输入的信息添加到数据库。
mysql_connect("localhost", "webuser", "");
if (isset($name) && isset($phone)) {
$query = "INSERT INTO mytable VALUES ('$name', '$phone')";
$result = mysql_db_query("example", $query);
if ($result) { $name was added to the database
echo "
}
}
?>
Add an entry
编写完简单又高效的脚本后,现在该测试它了。