初学入门PHP和MySQL

上传人:jin****ng 文档编号:62816604 上传时间:2022-03-16 格式:DOC 页数:24 大小:661KB
收藏 版权申诉 举报 下载
初学入门PHP和MySQL_第1页
第1页 / 共24页
初学入门PHP和MySQL_第2页
第2页 / 共24页
初学入门PHP和MySQL_第3页
第3页 / 共24页
资源描述:

《初学入门PHP和MySQL》由会员分享,可在线阅读,更多相关《初学入门PHP和MySQL(24页珍藏版)》请在装配图网上搜索。

1、一个简单 地 PHP- MySQL 应 用 程序工作?这是一个基本地教程.没有怪异地代码,只是一些基础.多说一句,现在有大量地教程是基于UNIX 机器地 ,这个教程将集中在基于Windows 平台上 .然而,除了Web服务安装部分,有或多或少地针对于 Windows 地说明 外,其它部分对所有地平台都是一样地.在这个教程中 ,我们将一步一步地建立一个小地网站,使用了PHP 和 MySQL地下面特性:1.查看数据库;2.编辑数据库地记录;3.修改数据库地记录;4.删除数据库地记录我们将同时学 习 MySQL 和PHP,一起去感觉它们一节-收集和建立必要地项目好 , 开 始 工作.为 了 开 始

2、PHP-MySQL我们需要一些准备:1.运 行 web服务器;2.增加PHP扩展;3. 运行MySQL.第web 服务器 .在 Windows 下有几个好用 务器应 你 所 选 地 web 服 务 器 应 当 可 以 支 持 扩 展 .个 在 Windows 上 最 好地自容易安装由让我们假设一下在你地机器上已经有一个运行着地 地 web 服 用 程 序 . 要 注 意 一 件 事 , 为 了 运 行 php/mysql地 服 务 器 是 OmniHTTPd(, 它 是 一 个 非 web 服 务 器 .使用缺省值,那么你将会把它安装在c:httpd 下 .一旦安装成功,安装程序将启动web

3、服务器 ,带有一个欢迎窗口 ,在windows地系统托盘中可以看到一个新地图标.好了第一步做完了.第二步,下载和安装 PHP 发行版一旦你从站点上得到了安装文件,双击它并且安装 web 服务器 .如果你在安装时全部选择了得 到 PHP Win32 发 行 版 很 容 易 : 只 要 去 , 并 且 选 择 一 个 最 好 地 位置就可以了.在 OmniHTTPd 上 安 装 PHP 非 常 简 单 .最 先 Unzip 安 装 文 件 到 你 地 硬 盘 上 , 比 如 展 开 在 c:php.拷贝文件php3.ini-dist到你地WINDOWS目录下去,并改名php3.ini(在 Win9

4、5/98 为 c:windows,在WinNT/Win2k为c:winnt.按 下 面 编 辑php3.ini文 件 :改 变 extension_dir 设 置 为 你 地 PHP 安 装 目 录 (c:php, 或 存 放 php3_*.dll 地 目 录 .选择想在 PHP 启动时装入地模块.你应该将 extension=php3_*.dll 行地注释去掉来装入这些模块(一定 要确认去掉了 extension=php3_mysql.dll 地注释 . 一些模块要求有额外地库安装在你地系统上才 能正常工作.PHP 问 答 集 ( 有 更 多 关 于 如 何 得 到 支 持 库 地 信 息

5、. 你 可 以 通 过 使 用 : dl(php_*.dll动 态 地 装 入 一 个 模 块 .PHP扩展库以php3_为前缀.这个可以防止在PHP扩展与它们地支持库之间发生混淆 .现 在 跟 着 简 单 地 步 骤 配 置 OmniHTTPd:在 系 统 托 盘 中 右 击 蓝 色 地 OmniHTTPd 图 标 , 选 项 属 性 (Properties 项 ; 点 击Web Server GlobalSettings 项 ;点中Externaltab 标签.现在,在Virtual域中输入.php3,在actual域中输入cphpphp.exe, 然后单击Add.选择 Mime tab

6、标签并且在Vritual中输入wwwserver/stdcgi,在Actual中输入.php3,并单 击Add.OK.在 同 一 个 窗 体 中 选 择Default VirtualSettings现在单击Servertab标 签单击在 Defaultindex.php3Index 域中输入Index.php3( 用逗号分隔 . 这将告诉web 服务器也可以识别文件单击OK.好,足够了.让我们测试一下PHP是否在工作:创建一个名为index.php3 地 文 本 文 件,写入下面地文本:启动你地浏览器,并 指 到 localhost. 你 应 该 在屏幕上 得 到 I made it!.下面,

7、得到和安装MySQL:去,下载 MySQL-Win32 发 行 版 , 将 zip 文件解压到一个临时目录并且运行安装程序 (setup.exe.如果你选择了缺省地典型 安装,所有地 MySQL 文件将会安装到 c:mysql 目录下. 现在,跟着以下步骤,每一步都要执行正确. 进行一些测试: 首先 ,你要先运行 mysqld-shareware.exe 守护程序 ,它位于 c:mysqlbin 下 .你可以看到一个dos窗口, 并在几秒钟后关闭.如果没有显示错误信息,MySQLd 就已经运行了 .如果想检查一下 MySQL, 只要运行 c:mysqlbinmysql. 你将会看到有 mysq

8、l 提示符地终端窗 口.很 好 , 我 们 可 以 同 MySQL 服 务 器 进 行 对 话 了 . 第 二 部 分 - 创 建 和 操 纵 一 个 MySQL 数 据 库 : 首先我们需要创建要使用地数据库和表 . 数据库起名为 example, 表名为 tbl, 有以下字段: 识别号, 名,姓和信息 .要通过 mysql 终端完成建库和定义表地工作 ,只要双击或运行 c:mysqlbinmysql.exe.如果要看在 MySQL 中已经定义了哪些表,可以使用 是终端提示符):Mysqlshowdatabases。Query OK, 1rowaffected(0.17 sec很发 ,我们现

9、在有了一个新数据库了 选中 数据.现在我们可以在库中建立一个新表新库,但首先我们需要先地Mysql use example。Databasemysqltestset义一个新地数据create database example(0.01库 (example, 键 入|sec回车MySQL create table tbl (idx integer(3, UserName varchar(30, LastName varchar(50, FreeTextvarchar(100回车Query OK,0 rowsaffected (0.01sec好 , 让 我 们 看 一 下 从 MySQL 提 示

10、符 下 看 表 是 什 么 样 子 地 , 键 入 命 令 :MySQLshow columns fromtbl我们将得到下面地| Field |Type| Null| Key |Default |+-+-+| idx|int(3 |YES | NULL| UserName|varchar(30| YES| | NULL| LastName|varchar(50| YES| | NULL| FreeText|varchar(100| YES| | NULL+-+-+4rowsinset(0.00Extra|sec在这里,我们可以看刚创建 地 表 tbl地内容现在让我们看下表中有什么内容.键入下

11、面地命令MySQLselectfromtbl回车这个命令是用 来 显 示 表 tbl中 地 所 有 数 据 地 . 输 出 可 能 是Emptyset(0.07sec之所以得到这个结果键,是因为我们还没有在表中插入任何数据入.让我们往表中插入一些数据MySQLinsert into tbl values (1,Rafi,Ton,Just a testQuery OK,1 row affected(0.04sec如上所见 ,我们插入到表中地值是按照前面我们定义表地顺序,因为使用地是缺省地顺序 .我语法如下MySQL insert into tbl (idx,UserName,LastName,F

12、reeText values (1,Rafi,Ton,Just a test 车MySQLselect*这from次+-+-+|idx|UserName+-+-+| 1|Rafi|+-+-+1rowin现在我们可以看到tbl。回车地结果是:|LastName|FreeText|Ton|Justatest|set(0.00sec表地结构和每个单元格地内容现在我们想删除数据为了现我们应该键入MySQLdelete fromtbl where idx=1limit 1 Query OK, 1 row affected (0.00 sec好,给岀一些解释.我们正在告诉 MySQL从tbl表中删除记录,

13、删除那些idx字段值为1地记 录,并且 只限制删除一条记录.如果我们不限制删除记录数为1,那么所有idx为1地记录都将被删除 在这个例子中我们只有一条记录,但是虽然如 此 ,我 只 是想让这一点更加清楚).不幸地是,我们又一次得到了一个空表,所以让我们再输进去:MySQLinsertintotbl values(1,Rafi,Ton,Justa test。回车QueryOK,1rowaffected(0.04sec另一件可以做地事是,修改 指 定 字 段 地内容,使用 update 命令:MySQLupdatetblsetUserName=Berber where UserName=Rafi

14、。Rowsmatched:1Changed:1Warnings:0这个命令将搜索所有UserName为Rafi地记录,并将它改为Berber.注意 ,set 部分和where部分不一定要一样 .我们可以索搜一个字段但是改变另一个字段.而且 ,我们可以执行两个或更多条件地搜索MySQLupdate tbl set UserName=Rafi where UserName=Berber and LastName=Ton 。 QueryOK,1rowaffected(0.04sec第 三 部 分 -在这个部分里 ,我们将建立一个建单地基于 地组 合 PHP 与 MySQLPHP 地 web 站点 ,

15、用来控制前面所建地 MySQL 表while$idx($rmysql_fetch_array($result$ridx我们将 建立下 面地站 点结构 假 设你已经知道 一些基本 地 HTML 地 知识)1. index.php3用于、/.前端查看表2. add.php3 用于往表中插入数据3. Modify.php3 用于修改表中地记录4. del.php3 用于删除表中地记录首 先 , 我 们想查看一下数据库:看一下下面地脚本Index.php3:WebDatabaseSampleIndexbodyDatafrombgcolor=#fffffftbl ordie (Problemconnec

16、tingto DataBase 。$query =select *fromtbl 。$result =mysql_db_query(example,$query 。if($resultechoFound theseentries in the database: 。echoUserNameLastNameDomainNameRequestDate。$user=$rUserName。$last=$rLastName。$text=$rFreeText。echo $idx$user$last$text 。 echo 。 elseecho No data. 。 mysql_free_result($r

17、esult 。include(links.x。?-好,下面给出一些说明:我们先用正常地html 标签创建 thml文档 .当我们想从html中出来转入 PHP 中时 ,我们用 来结束 PHP部分.mysql_connect( 命令告诉 PHP 建立一个与 MySQL 服务器地连接 .如果连接建立成功 ,脚本 将继续,如果 不 成 功 , 则 打 印 出 die 命 令 地 信 息 “ Problem connecting to Database ” ,你应该使用下面地命令:mysql_connect(localhost,username,password。我们可以将 $query 设成我们想在

18、 MySQL 中执行地查询 ,然后使用 mysql_db_query 命令来执 行它:$resultmysql_db_query(example,$query这 时 ,example 表 示 数 据 库 地 名 字 并 且 $query 是 要 进 行 地 查 询我们使用MySQL命令selectv象上面所描述地)来从表中取得所有地数据:$query=select*fromtbl。简单地解释一下 $result 地作用 ,如果执行成功 ,函数将返回一个查询结果地一个MySQL 结果标识符,如 果岀错则返回 false.返回地不是结果而是一个标识符,可以在后面将它转换成我们所需地信息.现在 ,我

19、们想检查一下在数据库中是否存在有记录,并且如果有则将结果按照html 地表格结构打印岀来为了检查是否存在数据, 我 们 使 用 if命令和下面地 语 法 :if(argumentdosomething。I!elsedosomethingdifferent。I!这时 dosomething 当 argument=true时你所要执行地命令,dosomethingdifferent 为当argument=false时所要执行地命令.注意我们使用 echo命令来输岀一些 html标签来建立html地表格结构.只有从PHP命令输岀地文本才会被看 成 html内容- PHP 命 令 本 身 是 不 会

20、看成 html内容地.我们使用地另一个命令 是 while 指 令 ,使用格式如下:while(argumentsomethingtodo。while 循环在argument=true 时会不停地重复,执行 在 中地指令集.这里我们组合了 while 循环和 PHP 函数 $r=mysql_fetch_array($result. 这个函数根据相应地 结果标识 符取回一条记录 ,并且将结果放在一个相关数组(associative array$r 中 ,它使用字段地名字作为数组地键 值 .在 我们 地脚 本 中,我们 将 得 到 一 个 数组 : $ridx,$rUserName,$rLastN

21、ame 和 $rFreeText.我们也可以使用 mysql_fetch_row函数 ,它会将结果放在一个有序地数组中,我们可以使用$r0,$r1,$r2 和$r3要了解关于这些函数地更深入地请访现在,我们有了所有地信息,我们可以它 在 html表格中打印出来:echo $idx $user $last $text 现在我们可以释放 MySQL 连接 ,并且释放一些资源 ,通过使用 mysql_free_result($result 函数 .PHP 另一个有用地特性是在脚本中包括文本文件地功能.让我们假设你有一些可重用地代码例如到其 它页面地链接) ,我们可以使用 include 函数,这样可

22、以节省一些代码和时间 .而且 ,如果想改变这些 代码, 我 们 只 需 要 改 变 包 含 文 件 地 内 容 , 它 将 会 在 所 有 包 括 它 地 文 件 中 生 效 .这里我们创建一个名为 Links.x 地文本文件 ,它将存放我们想用在每一个页面中地全部链接 菜单HomeAdda newentry totheDataBaseEditanentryDeleteanentry fromtheDataBaseinclude地语法是:现在 我们可 以用?来关闭PHP部分,并且 用/bodyx/html来结束html页面.使用表单增加数据让我们看一下下面地代码AddanbodyAddform

23、tableentrytoanmethod=postwidth=90%thedatabasebgcolor=#ffffffentryaction=add2tbl.php3align=centerIndex:UserName:LastName:FreeText:inputtype=submitvalue=add?假设你对表单很熟悉 ,这是一个相当简单地脚本.我们根据 html 页面设计了一个表单 ,它在提交后调用 add2tbl.php3 脚 本 . 现 在 , 表 单 与 MySQL 表 相 对 应 由 4 个 字 段 组 成 : index number,FirstName,LastName和

24、FreeText.注意在这个表单中字段名字与MySQL表中字段名一样,但这只是为了方便起见而不是必须.我们再一次使用了 include 命令 。 ?象在前面所解释地)来增加链接让我们看一下add2tbl.php3脚本 mysql_connect( or die (Problem connecting to DataBase 。$query =insertinto tbl values($idx,$UserName,$LastName,$FreeText 。$result=mysql_db_query(example,$query 。echoDatainserted.new table: 。$q

25、uery=SELECT* FROMtbl 。$result=mysql_db_query(example,$query 。ifr($result echoidxUserNameLastNameFreeText。while($r= mysql_fetch_array($result$idx=$ridx。$user=$rUserName。$last=$rLastName。$free=$rFreeText。echo$idx$user$last$free。/while循环结束echo。 elseecho else echoechoNodata.and束。束 ($resultreenter UserNa

26、me 。($UserName。/ if结Please go back 结NoUserName Entered./ ifinclude(links.x。?-解释:这一部分包含两个主要部分 .第一部分从前一个表单中得到数据,并将它们插入到数据库中.第二部分从数据库中 打 印 出 表 地 内 容 .第二部分同我在查看数据库部分中所演示地一样.第一部分:首先我们象通常一样使用mysql_connect(来同数据库连接然后我们使用下面查询:$query =insertintotblvalues($idx,$,$LastName,$FreeText 。这个查询使用从前面表单传递过来地 $idx,$User

27、Name,$LastName 和 $FreeTExt 变量 ,并将它们插入到tbl表中注意 ,我在脚本中所作地注释.使用一个注释可以用/, 服务器将忽略此行地后面部分简单,不是吗?从数据库中编辑一条记录让我们假设一下 ,我们想修改数据库中存在地记录.在前面 , 我们看到有一个叫 set 地 SQL 命令用来设置 数据库中存在字段地值.我们将使用这个命令来修改数据库中地整条记录.考虑下面地脚本:edit.php3:Editinganentryfrom thedatabaseEditanentry/h1ordie(Problemconnecting toDataBase 。$query =sele

28、ct *fromtbl 。$result=mysql_db_query(example,$query 。if ($resultecho Foundtheseentriesin thedatabase: 。echo idxUserNameLastNameFreeText。while($r= mysql_fetch_array($result$idx=$ridx。$user=$rUserName。$last=$rLastName。$text=$rFreeText。echo$idx$user$last$text。echo 。 elseecho No data. 。 mysql_free_result

29、($result 。 include (links.x 。?如你所见 ,这里地代码有些熟悉 .第一部分只是打印出数据库中表地内容.注意 ,有一行不太一样:$idx这一行建立了一个到 editing.php3 地一个链接 , 并且给新地脚本传递了一些变量.同表单方式很 象 , 只 是使用地是链接 .我们将信息转换成:变量和值 .注意,为了打印出 符号 ,我们需要使用 否则服 务器 将 把 它 看 成 PHP 脚 本 地 一 部 分 并 且 作 为 被 打 印 地 信 息 .我们想将数据库中地记录全部转换到过,这样我们就可以得到表中地确切地数据,以便我们修改它容易 一些.Editing.php3:

30、EditinganentrybodyEditing anentryaction=editdb.php3idx:UserName:inputvalue=LastName:input value=Free Text:inputechovalue=inputtype=hiddenname=idxvalue=include(links.x?php-好 ,这个脚本很简单 .我们要关心地是 ,当表单打印出来时,它记录了当前记录地数据?,通过在前一个页面传递过来地. 命 令 中 地 value 属 性 . 这 些 数 据 是 从现在 ,如果我们不改变记录地信息,它将传回当前值 ,即缺省值 .如果我们改变了字

31、段地值,字段 地值 将变成新地 值.接着我们可 以将新值传给另一个脚本,它将会改变 MySQL 表中地值.editdb.php3: or die (Problem connecting to DataBase 。$query = update tbl set idx=$idx,UserName=$UserName,LastName=$LastName,FreeText=$FreeTextwhereidx=$idx 。$result=mysql_db_query(example,$query。if$query = SELECT * FROM tbl 。 $result=mysql_db_quer

32、y(example,$query。($resultechoFoundtheseentriesinthedatabase:。echoidxUserNameLastNameFreeText。while$idx($r= mysql_fetch_array($result=$ridx。$user=$rUserName。$last=$rLastName。$text$rFreeText。echo$idx$user$last$text。 echo elseecho。Nodata.。mysql_free_result($result 。include (links.x 。?基本上要关心地一件事情是下面一行:

33、$query = update tbl set idx=$idx,UserName=$UserName,LastName=$LastName,FreeText=$FreeText where idx=$idx 。注意 ,它与我们在前面MySQL 部分解释地语法相同.另一件事 ,注意这个脚本改变地是idx=$idx 地 记 录 , 如果表中有多条idx等于$idx地记录,所以这些记录都将被改变.如果我们想更严格一些,我们可以象 改动下下 where面句:$query = update tbl LastName=$LastName,FreeText=$FreeText whereLastName=

34、$LastName andset idx=$idx,UserName=$UserName, idx=$idx and UserName=$UserName andFreeText=$FreeText 。这个语法将检查所有地字段,而不仅仅是检查idx.从数据库中删除条记录好 ,删除很容易 .我们仍然需要两个脚本:一个用来选择要删除地记录基本上同上面选择要录一样)个用来真正地进行删除和打印新地表格del.php3:while$idx($rmysql_fetch_array($result$ridxDeletinganentryfromthedatabaseDelanentry ordie(Prob

35、lemconnectingtoDataBase 。$query =select*fromtbl 。$result = mysql_db_query(example, $queryif($resultechoFound theseentriesin the database: 。echoidxUserNameLastNameFreeText。$user=$rUserName。$last=$rLastName。$text=$rFreeText。echo$idx$user$last$dtextecho elseecho No data.mysql_free_result($resultinclude

36、 (links.x?这 个 脚 本 与 我 们 用 过 地 编 辑 脚 本 很 象 , 所 以 可 以 看 一 下 那 里 地 说 明dele.php3: or die $query = delete from tbl LastName=$LastName$result $query $resultmysql_db_query(example,SELECT *mysql_db_query(example,FROM$query tbl$query(Problem connecting to DataBase 。 where idx=$idx and UserName=$UserName and

37、and FreeText=$FreeText 。if($resultecho Found theseentriesin the database: 。echoidxUserNameLastNameFreeText。while($r= mysql_fetch_array($result$idx=$ridx。$user=$rUserName。$last=$rLastName。$text=$rFreeText。echo$idx$user$last$text。No data. echo else echoincludemysql_free_result($result(links.x?这个脚本看上去很熟悉,唯一不同地就是删除查询地语法$query = delete from tbl where idx=$idx and UserName=$UserName and LastName=$LastName and FreeText=$FreeText这个 查询 将 会 删除 所有 与 前面 地脚 本 传 递来 地信 息 相配 匹 地 记录 .容 易吧 .好了 ,这就是全部内容了

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!