乐观 发表于 2015-2-4 00:21:40

PHP编程:php与mysql三日通-第一天

没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。mysql   1、PHP/MySQL简介

  您应当传闻过开放源代码软件(OSS),除非比来六到八个月来您一向住在火星上。这场活动有着伟大的冲击力,已引发一些大公司的注重。象Oralce、Informix,还有多家公司都入手下手把他们的主力数据库产物移植到OSS的产品之一 - Linux操作体系上。

  假如您有足够的手艺力气,具有一个庞杂复杂的关系数据库体系(RDBMS)则是如虎添翼。然而或许您对数据库还方才入门,您方才读了Jay的文章,决意本人也来弄一个数据驱动的网站。可是您或许会发明您缺少需要的资本来运转ASP办事器或昂贵的数据库体系(您也不需求这些器材)。您需求一些收费的、撑持Unix的器材。

  那末我建议您利用PHP和MySQL。这两样器材加在一同,关于开辟数据驱动的网站这项任务而言,真是最好组合。其适用不着我多费唇舌注释。一项由Netcraft组织的非官方查询拜访显示,使用PHP的主机数量由1998年6月的7,500台跃升至1999年3月的410,000台。不错吧?这两种软件的组合还在Webcon98大会上博得了年度数据库产物大奖,还得了一座大度的奖杯。

  MySQL是一个玲珑灵珑的数据库办事器软件,关于小型(固然也纷歧定很小)使用体系长短常幻想的。除撑持尺度的ANSI SQL语句,它还撑持多种平台,而在Unix体系上该软件撑持多线程运转体例,从而能取得相当好的功能。关于不利用Unix的用户,它可以在Windows NT体系上以体系办事体例运转,或在Windows 95/98体系上以通俗历程体例运转。

  PHP是一种办事器端注释的剧本言语。假如你接触过ASP的话,那末您关于在HTML页面中嵌入代码应当是对照熟习了。PHP代码在办事器一端被注释改变成通俗的HTML页面内容,送给阅读器一端。这类形式使得咱们可以用它来完成相当庞杂的功效。

  除收费这一点(固然,MySQL也有一些利用允许方面的限制),PHP-MySQL的组合还可以跨平台运转,这意味着您可以在Windows上开辟,然后在Unix平台上运转。别的,PHP也能作为尺度的CGI历程来运转,此时它是一个自力的剧本注释器,或是Apache的一个嵌入模块。

  假如您有乐趣利用其他数据库办事器的话,PHP也撑持Informix、Oracle、Sybase、Solid和PostgreSQL ,和通用的ODBC。

  PHP撑持Internet开辟的一些前沿手艺。这些手艺包含身份认证、XML、静态图像生成、WDDX、同享内存,和静态PDF文档等等,所在多有。假如您还不写意的话,PHP是很轻易扩大的,所以只需您有编程才能,您尽可以本人大展身手一番。
  最初要说的是,两种软件都是大批法式员协同开辟的,因而文档及邮件列表等撑持体例良多。法式毛病的修改很快,而假如您请求到场新功效的话,总会有人思索您的请求,而且在可行性足够高的条件下加以完成。

  说得够多了!咱们来看看这篇教程里都有些甚么内容吧。

第一课讲的是在Unix和Windows情况下装置这两个软件。假如您不太关怀这个成绩(或许您是在ISP的办事器上开辟),您可以直接跳到第一个示例法式,从那边入手下手您的奇奥之旅。

在第二课里,咱们要进修一些加倍庞杂的剧本功效,好比轮回、处置用户输出,和与数据库互换数据等等。

第三课要讲的是确认功效,和若何使您的剧本法式明晰简洁。

  咱们入手下手吧。>>
2、装置MySQL

  快点举动,拿到这些软件包,细心研讨一下吧。这可不是件轻易的事儿。你从获得软件包、编译软件包到装置软件包的过程当中都有很多的选择项。咱们先从MySQL入手下手,由于有了它才干运转PHP。

  MySQL中心网站是http://www.mysql.com/。为了便利人们下载利用(这软件仍是对照大的),全球有许很多多的镜像网站。为更无效天时用因特网,请找一个就近的网站下载。

  在这时候候你也会有多种选择。假如你是发热友的话,可以下载源代码;不然,网上也有各类平台上运转的事后编译过的二进制文件可以直接下载。

  别的,MySQL还为Windows用户筹办了一个同享软件版本,它的版本号稍低一些。假如你想要最新的版本,得花钱买一个软件允许。MySQL还供应了ODBC驱动法式,使前端使用法式可以会见MySQL数据库。有关其他一些具体信息在它的网站上都有得引见,您可以去看看。

  事后编译过的Unix版本和Windows版本都很复杂,只须解包便可利用,不需求做太多申明了。因而,咱们来引见一下源代码的编译。Windows用户请记住,您需求运转mysqld法式,该法式是在mysql/bin目次下。

  下载紧缩过的软件包文件,放在一个目次下。利用gzip和tar来解紧缩息争包。对照快的做法是利用上面如许的号令:

gunzip < mysql-xxxx.tar.gz | tar xvf -

  个中,xxxx是你本人任取的一个版本标志。下面的号令将创立一个名为mysql-xxxx目次,一切的源法式文件都在这个目次下。经由过程履行cd mysql-xxxx号令转入该目次,细心浏览个中的多个README文件INSTALL文件。在碰到某些成绩时,这些文件能够会帮上大忙呢。

  MySQL带有一些便当的设置装备摆设剧本法式。只须复杂地键入./configure,您就能够让这些法式为您完成良多任务。假如您需求明白指定要做的工作,可使用./configure -help号令,它会给您列出你可使用的选项。例如,假如您正在一台内存较少的机械长进行编译,那末可使用--with-low-memory选项。我喜好把MySQL装置在一个总目次下,而不是装置在机械上多个目次下,所以我会指定装置目次,并指定-prefix选项。

  您还可以指定很多其他选项,象编译过程当中要略失落哪些局部、保存哪些局部等。咱们无妨假定要全体装置在办事器的/usr/local/mysql目次下。这意味着咱们将键入./configure -prefix=/usr/local/mysql号令。

  设置装备摆设剧本法式运转时会反省您的体系,然后生成一些文件来包管编译的顺遂停止。假如该剧本法式掉败,它也会显示一些有效的毛病信息告知您掉败的缘由。人人常常会碰到剧本法式在寻觅多线程库文件时掉败。此时您应该反省一下体系中是不是已装置了MIT-pthreads,假如没有,那末请您装置该软件。Linux用户则必需装置LinuxThreads。这些库文件关于MySQL的多线程运转形式(也就是运转它本人的多个版本〕长短常关头的。

  假如一切都顺遂停止的话,只须复杂键入make号令,然后就能够去泡杯咖啡了。MySQL是相当庞杂的法式,编译起来得用一段工夫。假如发明毛病,可以反省文档,看看只否您漏失落了某些与您的操作体系有关的筹办任务。

  接上去,键入make install号令,一切必须的文件城市装置到响应的目次。您差不多就能够入手下手利用了!假如您是MySQL老手,之前从未装置过MySQL,那您得创立默许的允许权限才干装置,因而请键入...scripts/mysql_install_db来停止响应的设置。

  就如许。咱们的筹办任务完成了。再上面所要做的就是在机械启动时主动启动数据库,并在关机时主动封闭数据库。是的,这项任务也有一个专门的剧本法式。mysql.server start号令可以启动数据库,而mysql.server stop可以封闭数据库。其实是再复杂不外了。假如您想手动启动数据库(如许就不必重启机械了),你以进到装置MySQL的最下层目次(/usr/local/mysql)然后键入bin/safe_mysqld &号令。

  咱们已完成了一半了。接上去是PHP局部。>>
3、装置PHP

  好,看到这里时,但愿您已把MySQL装置好并运转起来了。那其实是太成心思了!上面是PHP...这个进程要轻易一些,不外那些大批的选项仍是令人目炫凌乱。固然,您大可不用惊惶。您随时可以重头再来,从头编译PHP,依据需求来到场或去失落某个选项。

  PHP的老家在http://www.php.net/。这个网站信息量极大,从开辟项目内容到软件毛病呈报都有。和MySQL一样,您可以选一个离您比来的镜像网站下载。很明显,您失掉网站的Downloads局部去下载PHP。

  这里您的选择不是良多。有一些预选编译好的二进制文件,但那都是实行性的。假如您不是在Windows平台上,那就下载源代码,本人编译一下吧。

  然而咱们仍是先谈谈Windows。在利用PHP时,普通的作法是在Windows体系上开辟,然后在Unix办事器上运转。您终究能够也会选择这类体例,这就需求您对两种平台下的装置都很熟习才行。

  下载Windows二进制文件后,您可以用您喜好的任何一种ZIP解紧缩法式,把软件包中的文件解压到C盘的php3目次下。软件包中的README文件对装置过程当中的细节作了局部申明,然而咱们在这里再对这个文件中的关头内容做个读者文摘:假如您不想把PHP装置在C:\php3目次,而是其余目次,那末您得编纂解紧缩出来的文件中谁人.inf文件。

  在php3目次中,您会发明良多.dll文件。把一切文件名不是以php_开首的那些.dll文件都移到\windows\system目次下。然后,把php.ini-dist文件改一下名,改成php3.ini,并把它移到\windows目次下。假如您翻开这个文件,会发明外面有良多风趣的器材可以改。如今,把含有:

extension=php3_mysql.dll

  内容的那一行的正文去失落。

  假如您利用的是Win32平台上的Apache办事器,那末请设置Apache,使其可以辨认并注释PHP文件。您需求在http.conf文件或是srm.conf文件(详细是哪个文件取决于您利用的Apache软件的版本)中到场下一行:

  Action application/x-httpd-php3 "php3/php.exe"
  AddType application/x-httpd-php3 .php3

  或,假如您利用的是IIS,那末请用鼠标右键单击php_iis_reg.inf文件,并选择“装置”。您得从头启动体系,才干使方才所做的修改失效。

  OK,说完了Windows,再来讲说Unix。固然,咱们要从源代码入手下手编译。与MySQL类似,把源文件下载、解包。PHP也一样包括一个设置装备摆设剧本法式,可是您不克不及完整利用默许设置。运转./configure -help | more号令,可以逐页地旁观有哪些新的、风趣的选项。您必需选择是把PHP编译成内部CGI法式仍是Apache内嵌模块。假如您正在利用Apache Web办事器,而且您可以对它停止从头编译的话,请选择内嵌模块体例,这类体例运转更快,利用也更简捷。不然,您可以选CGI体例。别的,您还得指定将对MySQL的撑持局部编译出来。

  如今咱们假定要之内嵌模块体例编译,并带有MySQL撑持局部。假如随后您需求增添其他选项或库文件的话,可以在今后再加出来。键入上面的号令:

./configure -with-apache=/path/to/apache/dir -with-mysql=/usr/local/mysql

  假如您盘算之外部CGI法式体例来编译的话,请去失落-with-apache选项。设置装备摆设法式运转起来后,会创立响应的体系文件。接上去复杂地履行make号令就好了。

  又可以喝一杯咖啡了。假如您在此时感应如坐针毡的话,不用忧虑。每一个人在初度装置PHP的时分都有一点近不及待的感到。再多喝点咖啡就是了。

  假如您选择CGI法式体例来编译,那末如今可以就能够利用了。只须把发生的可履行文件复制到CGI法式目次下就好了。假如您利用Apache内嵌模块体例来编译,要再履行一下make install号令,把有关文件复制到Apache目次下。在该目次下,您可以依照Apache的文档申明,向个中到场PHP模块,偏重新编译Apache。

  如今您得告知Web办事器若何经由过程PHP法式来处置页面内容。假如您利用的不是Apache,那您需求查阅Web办事器软件的文档,看看若何让它处置后缀是.php3的文件。Apache 1.3.x版本的用户仅须在httpd.conf或srm.conf文件中到场:AddType application/x-httpd-php3 .php3。假如您利用的是CGI法式体例,那您在AddType后面还得到场上面内容:

Action application/x-httpd-php3 "php3/php.exe

就是如许。您的命运还不那末差,如今MySQL也运转起来了,PHP也任务正常了。别忘了,在碰到成绩时可以去查阅罕见成绩解答和软件文档。还可以尝尝电子邮件会商组。

  既然咱们已停止了这么多,上面咱们可以实践操练了。>>

4、第一个剧本

  假如我告知您真正忧伤的一关已过了,您必定会很乐意。软件的装置进程老是没法意料,由于体系跟体系之间可以说是千差万别。不外您命运不错,数据库运转起来,PHP也编译装置终了,Web办事器也能够准确处置扩大名为.php3的文件了。

  咱们上面就入手下手正式上路,要写第一个剧本法式了。创立一个文本文件,在个中到场上面的内容:

<html>
<body>
<?php
$myvar = "Hello World";
echo $myvar;
?>
</body>
</html>

 
 如今,会见响应的URL,例如,http://myserver/test.php3。您应当可以看到页面中包括“Hello World”的文字。假如您看到的是毛病信息,查一下PHP文档,看看软件设置是不是准确无误。

  就是如许了!这是您的第一个PHP法式。假如您检查一下这个页面的HTML源代码,您会发明外面只要Hello World 如许的文字。

  那是由于PHP引擎过滤了文件内容,对个中的代码作了处置,转换成了尺度的HTML。

  在下面的法式中您最早注重到的多是定界符,也就是?lt;?php入手下手的那几行。这个标志申明前面是PHP代码,而?>暗示代码停止。PHP的壮大的地方在于,这些代码可以以多种分歧体例放在恣意地位 - 我是说恣意地位。前面咱们会看到一些很风趣的例子,如今咱们仍是从最复杂的入手下手。假如您情愿,也能够设置PHP,让它利用短标志,<?和?>,但这与XML会产生抵触,所以要当心利用。假如您是从ASP转向PHP,您乃至可让PHP利用<%和%>作为定界符。

  您还会注重到每行前面的分号。这些分号称为分隔符,用于分隔分歧的指令。您可以把一切的PHP代码写在一行里,用分隔符把号令分隔。然而那样看起来很乱,所以咱们在每一个分号前面都另起一行。记住,每行最初都要以分号停止。

  最初,您会注重到myvar这个字以$符号开首。这个符号告知PHP,这是一个变量。咱们把“Hello World”赋给变量$myvar。一个变量可所以数字,也能够是数组。不论如何,一切的变量都是以$符开首。

  PHP真正壮大的地方来历于它的函数。函数,根基上是处置指令序列。假如您把一切的选件都编译进PHP,总共会有超越700个函数。这些函数可让您做良多工作。

  如今咱们再加进一些MySQL的内容出来。>>
5、装载数据库

  如今,咱们要到场MySQL的内容了。要想晓得PHP中包括哪些选项,或办事器方面的一些情形,一种简捷的办法是利用函数phpinfo()。创立一个象上面如许的法式:

<html>
<body>
<?php
phpinfo();
?>
</body>
</html>

 
 保留这个法式,在阅读器中会见这个文件。您会看到网页中包括了一些风趣的、有效的信息,象如许。这些信息是有关办事器、Web办事器外部情况变量、PHP中包括的选项,等等。在第一段Extensions中,找到以MySQL开首的一行。假如没有找到,那申明MySQL撑持选项并没有编译进PHP。您可以再反省一下装置步调,查阅一下PHP文档,看您是不是漏失落了甚么。

  假如找到了MySQL那一行,那您可以持续了。

  从MySQL数据库中读取数据之前,咱们得先往数据库里放一些数据。在如今这一阶段,还没有一个简捷的办法来做这件工作。大多半的PHP法式都带有一个数据文件,该文件包括一些数据来创立并激活MySQL数据库。这个进程不在本教程局限以内,所以让我来替您做这件工作吧。

  MySQL利用它本人的用户权限表。在装置时,会创立一个默许的用户(root),该用户是没有口令的。数据库办理员可以依据需求来增添用户并付与用户各类分歧的权限,但这项任务完整可以另写一本书了,所以咱们只利用root用户。假如您本人办理办事器和数据库,为root用户分派一个口令是很主要的。

  总之,咱们仍是接着说数据库吧。对Win32用户来讲,很对不起,不外您要在DOS下做些任务。您不能不利用DOS窗口,或在“履行”窗口中键入一切号令。别忘了,输出号令时要带上MySQL/bin的目次名。Unix用户可以在MySQL的bin目次下输出号令,但号令必需以./开首,才干让法式运转起来。

  咱们要做的第一件工作是实践创立出数据库。在号令行下,键入以下号令:

mysqladmin -u root create mydb

如许就创立了一个名为“mydb”的数据库。-u选项告知MySQL咱们利用的是root用户。

  下一步,咱们要到场一些数据,这里咱们用的示例数据是人人都喜好用的员工数据库。咱们将会用到我后面提到过的数据文件。假如您想在这方面多懂得一些,可以查阅MySQL所带的手册或会见 http://www.turbolift.com/mysql/网站。 < BR>
  把上面的文字复制到一个文件中,把该文件存在MySQL的bin目次下(我假定文件名是mydb.dump)。

CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL
AUTO_INCREMENT, first varchar(20), last varchar(20),
address varchar(255), position varchar(50), PRIMARY KEY (id),
UNIQUE id (id));INSERT INTO employees VALUES (1,'Bob','Smith',
'128 Here St, Cityname','Marketing Manager');

INSERT INTO employees VALUES (2,'John','Roberts','45 There St ,
Townville','Telephonist');

INSERT INTO employees VALUES (3,'Brad','Johnson','1/34 Nowhere Blvd,
Snowston','Doorman');

 
 假如文字是折行的,请确保每个INSERT语句都是另起一行的。如今,咱们要把数据到场到mydb数据库中了。在号令行下,键入上面的号令:

    mysql -u root mydb < mydb.dump

  此时您应当不会碰到甚么毛病。假如真的失足了,请细心反省一下是不是因下面的文字折行而引发毛病。>>
6、测试

  OK,如今咱们已把数据导入到数据库中了。如今咱们来处置这些数据。把上面的文字存入一个文件中,把该文件存在Web办事器的文档目次下,后缀名为.php3。

<html>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
printf("First Name: %s<br>\n", mysql_result($result,0,"first"));
printf("Last Name: %s<br>\n", mysql_result($result,0,"last"));
printf("Address: %s<br>\n", mysql_result($result,0,"address"));
printf("Position: %s<br>\n", mysql_result($result,0,"position"));
?>
</body>
</html>


  我来注释一下下面的代码。mysql_connect()函数担任以指定的用户名(本例顶用户名是root)毗连到指定机械(在本例中机械是本机localhost)上的MySQL数据库。假如您想指定用户口令,您也能够把它送给这个函数。毗连的了局保留在变量$db中。

  随后,mysql_select_db()函数告知PHP,咱们要读取的数据库是mydb。咱们可以在法式中同时毗连到多台机械上的多个数据库,但今朝咱们仍是限于毗连一个数据库。

  接上去,mysql_query()函数完成最庞杂的局部。使用方才失掉的毗连了局标识,该函数把一行SQL语句送给MySQL办事器去向理。前往的了局保留在变量$result中。

  最初,mysql_result()函数显示SQL查询号令所失掉的各个字段的值。使用变量$result,咱们就能够找到第一笔记录,纪录号是0,并将个中各字段的值显示出来。

  假如您之前没用过Perl或C言语,那末printf函数的语法格局会显得很奇异。在下面的每行法式中,%s代表表达式第二局部中的谁人变量(例如,mysql_result($result,0,"position"))应当以字符串的模式显示出来。想更深切懂得printf,请参阅PHP文档。

  这一课咱们就讲到这里了。咱们已胜利地编译、装置和设置了MySQL和PHP,而且运转了一个复杂的法式来读取数据库中的信息。在 第二课里,咱们会做一些更庞杂的任务,来显示多行纪录的数据,乃至与数据库相互互换数据。左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!

简单生活 发表于 2015-2-4 12:32:29

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

山那边是海 发表于 2015-2-9 22:38:04

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

爱飞 发表于 2015-2-10 04:48:17

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

小妖女 发表于 2015-2-28 19:58:23

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

admin 发表于 2015-3-10 07:50:10

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

分手快乐 发表于 2015-3-11 06:40:33

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

飘飘悠悠 发表于 2015-3-11 23:07:47

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

飘灵儿 发表于 2015-3-13 02:10:33

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

冷月葬花魂 发表于 2015-3-14 18:33:15

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

变相怪杰 发表于 2015-3-21 05:37:11

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

蒙在股里 发表于 2015-3-24 12:40:10

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

金色的骷髅 发表于 2015-3-27 08:08:05

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

若相依 发表于 2015-3-28 21:29:59

写的比较杂,因为我也是个新手,不当至于大家多多指正。

精灵巫婆 发表于 2015-4-14 23:13:33

兴趣是最好的老师,百度是最好的词典。

谁可相欹 发表于 2015-4-26 01:10:28

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

第二个灵魂 发表于 2015-5-3 11:39:51

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

只想知道 发表于 2015-5-6 00:04:28

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

透明 发表于 2015-5-6 03:12:25

本文当是我的笔记啦,遇到的问题随时填充

兰色精灵 发表于 2015-6-12 04:10:43

当然这种网站的会员费就几十块钱。
页: [1]
查看完整版本: PHP编程:php与mysql三日通-第一天