楼 主
index »
PHP+MYSQL编程 » [站长新作]PHP4与MYSQL编程教学程序(一)
发表:2004-04-06 18:34:51 阅读 9818 次 回复 53 次 得分88 |
字号
10px
12px
14px
16px
18px
20px
24px
字色
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
[站长新作]PHP4与MYSQL编程教学程序(一)
PHP4与MYSQL编程教学程序(一)
很多朋友刚开始学习PHP就跃跃欲试,很想学习数据库编程。好的,今天抽出时间,赶紧写一点入门的教程————特别声明,这篇文章只适合那些刚刚开始学习php,还没有成功的连接过一次数据库的朋友阅读!高手就不要进来看了,免得倒胃口哦!!
好,时间不多,马上开始!
我们假设你已经配置好了PHP和Mysql,并且,对php的基本语法已经有了一定了解(比如,我不会给"<?"作注释,你不要问这个是什么意思).如果你还对PHP一无所知,我建议您阅读我昨天写的几篇基础文章。
在开始编写第一个连接到mysql的php程序之前,我们先假设你的mysql有这么一个数据库 linktest,这里面有一个表userinfo,结构如下:
---------------------------------
id | username | password | age |
----------------------------------
1 | 张三 | 12221 | 19 |
----------------------------------
2 | 李四 | 3213isda| 32 |
----------------------------------
....................
现在,我们就要动手写一个php程序,把数据表中的内容显示在网页上,并且在一个表格中显示。
好的。开始了。
新建一个文件,如 linkdb.php
代码如下(注释够详细了)
--------------------------------------------------------------------------
<?php
$id=mysql_connect("localhost","root","123");
//首先连接到数据库服务器,并且返回一个Id
//(这个Id表示一个连接号,就像你的身份证号一样,是一个人的唯一标示,用来和其他连接作区别)
//mysql_connect()是php提供的连接到mysql服务器的函数,有三个参数:服务器地址,用户名,密码。
//服务器地址如果不是本机,则填写ip地址,比如:202.111.131.1,用户名密码就是你的帐号
mysql_select_db("linktest",$id);
//注意,这一行直接调用了一个函数,没有返回值。mysql_select_db()函数用来选择数据库,也就是说,你的这个连接要是用那个数据库
//第二个参数“$id”可以不要,如果不填,则表示当前连接,不过出于编程谨慎习惯的需要,我建议您填写这个$id.
$query="select * from userinfo";
//这一句,我们定义了一个字符串$query,并且赋值。其实这就是一个sql语句,我们下面要用到,所以把它存放在$query里面。
//这个sql语句的功能是查询出userinfo表中的所有记录(如果您不太熟悉sql语句,也不要紧,以后我们会多讲一些常用的语句)
$result=mysql_query($query);
//这一句是精髓。作用是,用mysql_query()函数,向mysql服务器发送一条sql语句执行指令,发送的指令就是前面定义的$query。
//指令发送之后,返回的结果,存放在$result里面。注意,查询返回的结果是一些列的记录集数据,不是我们常用的整型或者字符型
//如果你用echo $reuslt;输出这个变量的话,会得到 Resource #.. 之类的输出,意思是资源号..,$result现在的值是一些资源,不能直接用echo输出。
//我们下面就看看怎么把$reuslt中的数据输出到网页上
echo "<table border=1><tr><td>姓名</td><td>年龄</td></tr>";
//上面是输出了一个表格头
if(mysql_num_rows($result)<=3){
$shuchu=mysql_num_rows($result);
}else{
$shuchu=3;
}
//上面是一个简单的判断。判断一下表中一共有多少记录,如果少于三条,则全部输出,如果多于三条,则只输出三条
//里面用到了一个函数:mysql_num_rows(),这个函数用来判断结果记录集中一共多少条记录,参数就是记录集$result
for($i=1;$i<=$shuchu;$i++){
$info=mysql_fetch_row($result);
echo "<tr><td>".$info[1]."</td><td>".$info[3]."</td></tr>";
}
//上面的代码,用一个for循环,输出$shuchu条记录,关于for循环的使用不是今天这篇文章的内容。只讲其中数据库有关的,
//里面第二行:$info=mysql_fetch_row($result);是关键。这句话的意思是:
//从结果记录集$result中取出一条数据,并且把数据存放在一个数组$info中。当然数组的名字是随便起的。
//mysql_fetch_row()的作用是,从一个记录集中取出一条记录,返回值是一个数组。取完之后,把记录指针向下移动一条
//注意,mysql_fetch_array()取得记录是当前记录指针指向的记录。初始时指针指向第一条数据。你可以用mysql_data_seek()
//函数来移动记录指针。但是刚才说了mysql_fetch_array()函数可以在取完一条后自动把指针下移一条
//这一点和asp不同,asp中需要用rs.movenext来吧记录指针移动到下一个
//我们获得的数组$Info,里面包含了第一条记录的有关信息,获得信息的方法就是用字段序数。注意,序数从0开始编号
//比如,刚才我的表,一共有id,username,password,age 4个字段,那么,你可以用$info[0],$info[1]...来依次获得
//上面程序中,$info[1]获得的就是第一行数据的第二个字段值,输出就是“张三”。。明白了么??
echo "</table>";
//最后当然要输出表格尾
mysql_close($id);
//这最后一句是关闭连接,这一句实际上可以不要,因为php在页面执行完毕后会自动关闭连接
?>
-----------------------------------------------------------------------------
好了,又用了2个小时时间来写这个教程。非常简单的例子,但是从这个例子你可以明白许多道理。
这个代码站长已经测试通过,完全可以运行,完整的代码(复制下去可以运行):
+++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
$id=mysql_connect("localhost","root","123");
mysql_select_db("linktest",$id);
$query="select * from userinfo";
$result=mysql_query($query);
echo "<table border=1><tr><td>姓名</td><td>年龄</td></tr>";
if(mysql_num_rows($result)<=3){
$shuchu=mysql_num_rows($result);
}else{
$shuchu=3;
}
for($i=1;$i<=$shuchu;$i++){
$info=mysql_fetch_row($result);
echo "<tr><td>".$info[1]."</td><td>".$info[3]."</td></tr>";
}
echo "</table>";
mysql_close($id);
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++
谢谢您的阅读。
1#楼
回复人:一起PHP
注册时间:2004-02-27
主题/回复:247/1521
积分:4649
等级:★★★★★☆(十一级)
称号:论坛圣人
1#楼 发表于2004-04-07 18:01:20
评分:1
这篇文章我觉得写的狠好了,是不是因为太长,大家没人看啊。
怎么也没人回。
虽然长,但是很通俗易懂的。大家多支持啊。
2#楼
回复人:Bangel
注册时间:2004-07-06
主题/回复:0/1
积分:401
等级:★★☆(五级)
称号:略有小成
用户联系方式已设置为保密
2#楼 发表于2004-07-06 18:23:21
评分:1
我下的PHP4.2.3-for-win32。。。运行你的这个程序后出现:
Fatal error: Failed opening required 'datafile/superadmin.php' (include_path='.;c:\php4\pear') in C:\Inetpub\wwwroot\index.php on line 24
能解释下吗?
3#楼
回复人:一起PHP
注册时间:2004-02-27
主题/回复:247/1521
积分:4649
等级:★★★★★☆(十一级)
称号:论坛圣人
3#楼 发表于2004-07-06 19:14:38
评分:♂
你这个错误,肯定不是我这个程序的原因
我这个程序是演示如何连接到MYSQL数据库的,代码非常简单,没有包含文件。
如果你的PHP环境配置没有问题,可以正常运行其他数据库程序,那么这个程序肯定没有问题。
错误提示的意思是:
致命的(毁灭性)错误:打开文件“datafile/superadmin.php”失败,错误发生位置:c:\inetpub\wwwroot\index.php 第24行
另外,括号里面提供了include_path,也就是php.ini中设置的包含文件路径。
首先,打开文件失败,打开superadmin.php失败,这个文件是哪里来的,大概只有你自己知道。是不是你在C:\Inetpub\wwwroot\index.php 这个文件里面用到了包含文件?
总之,错误原因有两个可能,一个是php.ini没有配置好。再一个就是你的index.php里面包含的superadmin.php不存在或者路径不对。
4#楼
回复人:jsh204
注册时间:2004-09-21
主题/回复:7/37
积分:494
等级:★★☆(五级)
称号:略有小成
4#楼 发表于2004-09-26 00:59:11
评分:1
5#楼
回复人:阿代
注册时间:2004-11-04
主题/回复:22/32
积分:542
等级:★★☆(五级)
称号:略有小成
5#楼 发表于2004-11-06 01:33:02
评分:3
6#楼
回复人:ziying
注册时间:2004-11-09
主题/回复:9/21
积分:467
等级:★★☆(五级)
称号:略有小成
6#楼 发表于2004-11-20 06:24:45
评分:5
7#楼
回复人:flyingclub
注册时间:2004-11-20
主题/回复:0/4
积分:407
等级:★★☆(五级)
称号:略有小成
用户联系方式已设置为保密
7#楼 发表于2004-11-22 01:19:39
评分:1
8#楼
回复人:xxfx007
注册时间:2004-11-24
主题/回复:10/33
积分:476
等级:★★☆(五级)
称号:略有小成
8#楼 发表于2004-12-05 06:07:04
评分:1
9#楼
回复人:gzbigll
注册时间:2005-01-21
主题/回复:3/7
积分:422
等级:★★☆(五级)
称号:略有小成
9#楼 发表于2005-02-24 00:13:48
评分:1
10#楼
回复人:cykk
注册时间:2004-12-30
主题/回复:41/99
积分:688
等级:★★★(六级)
称号:声名鹊起
10#楼 发表于2005-03-17 04:05:25
评分:1
11#楼
回复人:小丸子
注册时间:2005-03-04
主题/回复:6/10
积分:440
等级:★★☆(五级)
称号:略有小成
11#楼 发表于2005-03-17 19:15:23
评分:5
12#楼
回复人:pnrj7999
注册时间:2005-04-04
主题/回复:73/43
积分:813
等级:★★★(六级)
称号:声名鹊起
用户联系方式已设置为保密
12#楼 发表于2005-04-18 17:01:27
评分:5
13#楼
回复人:zhangjun434
注册时间:2005-03-29
主题/回复:14/22
积分:492
等级:★★☆(五级)
称号:略有小成
13#楼 发表于2005-04-18 18:12:19
评分:5
呐无阿弥陀佛,斑竹真是太讲究了,太适合我这样的菜鸟学习了,打个最高分,嘿嘿
14#楼
回复人:新传
注册时间:2005-05-11
主题/回复:0/2
积分:402
等级:★★☆(五级)
称号:略有小成
14#楼 发表于2005-05-11 17:53:17
评分:4
15#楼
回复人:ancang
注册时间:2005-05-25
主题/回复:0/4
积分:404
等级:★★☆(五级)
称号:略有小成
15#楼 发表于2005-05-25 21:15:50
评分:0