电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> PHP>>php连接mysql:

php连接mysql

来源:www.cncfan.com | 2006-1-11 | (有8798人读过)

第一节 综述
1.1 这个教程所要描述的
这个教程将会教会你如何使用PHP来连接到MYSQL数据库并进行相关数据操作.
1.2 在进行课程之前你应该知道的
这个教程并不是教你学SQL语句的,所以你应该具有使用SQL语句的基本常识, PHP是很容
易学的,所以初学者即可.
1.3 其他有用的教程
在下面的地址中你可以找到关于SQL的一个基本教程: http://w3.one.net/~jhoffman/s
qltut.htm
我们也需要一个好的关于PHP的教程,下面就是一个: PHP home pages .
1.4 为什么使用PHP来代替使用PERL 与 DBI
PHP 是一种极好的写作HTML文档的脚本语言. 动态的信息能从许多数据源中被取出,经过
处理后再返回用户.它易于学习,能够胜任大多数控制HTML文档的任务.
Perl 也是一种强大的脚本语言,它几乎能写出任何程序,再与dbi相结合, 就成为了强有
力的系统开发工具.但是,它比较复杂,不易使用.
同时,PHP类似asp的使用方法,及在用户增多的情况下的优良表现,使得我们选择了它,但
当它不能完成我们的需要时,我们会再次转向使用perl,但这会使程序更加复杂化.

第二节 开始
首先应保证php3与mysql这两个部件都已经配置好并能正常运行,否则将会使调试程序工
作难以进行.
2.1 "Hello World" in PHP
"Hello World" 是最简单的程序,下面我们就以此为例说一说php3程序的建立.
建立一个名叫 hello.php3 的文件并键入如下内容:


echo("Hello Worldn");
?>


将其放入有执行权限的CGI目录中,在你的浏览器上指向该php3,你应能看到一行文字: H
ello World. 如果看不到的话,说明php3未能正常运行.
2.2 在MySQL中建立一个测试表格
首先你应能TELNET上MySQL服务器,或用其他方式来操作MySQL数据库.
连接到你的MySQL数据库服务器并建立一个测试库与测试表供此教程使用:
%> mysql -uUSERNAME -pPASSWORD
mysql> create database phptest;
Query OK, 1 row affected (0.13 sec)
mysql> create table TEST
-> (
-> ID int auto_increment primary key,
-> Name varchar(32),
-> Age int,
-> Salary int
-> );
Query OK, 0 rows affected (0.11 sec)
建议: 使用 varchar 来代替 char , 除非你想限制用户从HTML输入的字符串的长度.
2.3 向测试表格中添加记录
现在我们要向表格中添加几条记录供我们以后使用.
mysql> insert into TEST values (0,'Billy Bob Barker','87','93000');
Query OK, 1 row affected (0.09 sec)
mysql> insert into TEST values (0,'Sniffling Sam Sloth','23','12000');
Query OK, 1 row affected (0.01 sec)
mysql> insert into TEST values (0,'Roy Bartley','31','87000');
Query OK, 1 row affected (0.01 sec)
mysql> insert into TEST values (0,'Leroy Longrad','45','63000');
Query OK, 1 row affected (0.01 sec)
mysql> insert into TEST values (0,'Amy Antwerp','37','34000');
Query OK, 1 row affected (0.01 sec)
mysql> insert into TEST values (0,'Kim Kruger','57','76000');
Query OK, 1 row affected (0.01 sec)
结果如下:
mysql> select * from TEST;
+----+---------------------+------+--------+
| ID | Name | Age | Salary |
+----+---------------------+------+--------+
| 1 | Billy Bob Barker | 87 | 93000 |
| 2 | Sniffling Sam Sloth | 23 | 12000 |
| 3 | Roy Bartley | 31 | 87000 |
| 4 | Leroy Longrad | 45 | 63000 |
| 5 | Amy Antwerp | 37 | 34000 |
| 6 | Kim Kruger | 57 | 76000 |
+----+---------------------+------+--------+
6 rows in set (0.16 sec)
2.4 使用php连接到数据库
这里需要用到PHP与MySQL连接的许多函数,我们已经将这些常用函数集合到一个文件中,
其中包括了很多基本功能.将 PHP class code 存到一个名叫"util.php3" 的文件中,和
要执行的php文件放到同一个目录中,编辑这个文件并将其中的username和password改为
你自己连接MySQL 的用户名与口令.
建立一个名叫 "testdb.php3" 的文件并键入如下内容:


require("util.php3");
$sql = new MySQL_class;
$sql->Create("phptest");
echo("Database connection successful.n");
?>


在浏览其中加载此文件,应能看到 Database connection successful. 如果看到的话,表
明你已正确连入数据库.


第三节 基本选择(Select)
大多数数据库应用程序的时间花费在从数据库中获取信息.根据你想从数据库中取得的数
据的多少,将会有如下几种选择:
3.1 返回的是一条记录的一项
多数情况下,用户可能只需要从数据库中提取一条记录的一项,例如:知道某个产品的 ID
号,需要查询它的产品名称.
下面就使用刚刚建好的数据库,你可以从中选出任何一个已知ID号的产品的产品名称.使
用到的函数叫做 QueryItem 它只返回一个单一结果.
$name = $sql->QueryItem("select Name from TEST where ID = 4");
变量 $name 现在会变为 "Leroy Longrad".
注意: 如果 SQL 语句返回了多条记录,只有第一条记录的相应项被返回.
3.2 返回的是一条记录
类似的,多数情况下用户可能需要从数据库中中提取一条记录. 使用到的函数叫做 Quer
yRow 它返回一条记录.
$sql->QueryRow("select * from TEST where ID = 4");
$row = $sql->data;
在这里,记录 $row 的各个项的值分别为:
$row[0] = 4;
$row[1] = "Leroy Longrad"
$row[2] = 45;
$row[3] = 63000;
另一种方法是,你可以指出字段名来引用记录的各个项:
$row[ID] = 4;
$row[Name] = "Leroy Longrad"
$row[Age] = 45;
$row[Salary] = 63000;
3.3 返回的是多条记录
最后,用户有可能需要返回多条记录,对多个记录进行列印,并组织成表格,或者将各个记
录填入一个下拉菜单中.
这个例子中你需要返回多个记录,并使用循环对各个记录进行处理,下面就是把返回的记
录在HTML中作成一个表格的例子:
echo("NameAgen");
$sql->Query("Select Name, Age from TEST order by Age");
for ($i = 0; $i < $sql->rows; $i++) {
$sql->Fetch($i);
$name = $sql->data[0];
$age = $sql->data[1];
echo("$name$agen");
}
echo("n");
3.4 例子源程序
所有例子的源程序都在: select.php3可以找到.

Insert, Update and Delete
现在你已经知道了怎样从数据库中提取数据,也知道了怎样将得到的数据返回到用户浏览
器中.当你为用户编制数据库应用程序时,大多数用户并不知道怎样运用 SQL将记录添加
进数据库.
最简单的解决这个问题的方法是建立一个HTML表单,在其中放入供用户填写数据的TEXT域
,当表单被提交的时候,PHP脚本会读入用户填写的内容并将其填入数据库中.当PHP作为表
单的ACTION时,所有表单中的变量都会在PHP中有相应的变量与之对应,例如:表单中有te
xt域,name为username

PHP 脚本中可以找到相对应的变量 $username.
echo("The name you entered was: $usernamen");
事实上,三种SQL操作INSERT.UPDATE.DELETE,在Perl DBI 的接口中将它们揉合到了一条
"do" 命令中. 在PHP中也可以做相同的事情, 我们把它分成了三条指令,以便于程序的
阅读,下面就是例程:
4.1 Insert
$sql->Insert("insert into TEST values (0,'J.D.','18','23000')");
$affected_rows = $sql->a_rows;
4.2 Update
$sql->Update("update TEST set Name = 'Jane Doe' where ID = 6");
$affected_rows = $sql->a_rows;
4.3 Delete
$sql->Delete("delete from TEST where ID = 4");
$affected_rows = $sql->a_rows;


第四节 其他杂项
5.1 对时间字段的处理
MySQL 中有一个14字节的 datetime 数据类型,是非常有用的. 格式为 yyyyMMddhhmmss
:
y = year
M = month
d = day
h = hours
m = minutes
s = seconds
例如 19990317182330 表示 6:23:30pm on March 17th, 1999 (1999年3月17日下午6点
23分30秒).
这种长数字的表示格式对比较记录之间的时间关系十分有好处,每一位都有确切的含义,
这意味着你可以快速地建立日期与时间.
如果你想从用户那里得到时间字段,我们强烈建议设置下拉式菜单来设置时间, 由用户自
己选择,一个用来选择年,一个用来选择月,一个用来选择日,一个用来选择时,等等.许多
HTML表单中都用到了这种方法.把所有的输入组合到一起就成为了时间字段.下面就是组
合的例子:
$datetime = $year.$month.$day.$hour.$min.$sec;
注意: 这里并未考虑到时差,你必须自己来解决这个问题.在许多WEB应用程序中这是个很
棘手的问题,因为在http header中并未包括用户所在时区的信息.我们无法判断用户所在
时区.
PHP热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号