PHP 和 MySQL 基础教程(一) ."m6zq
HTML 和 PHP 、MySQL 的交互 z.H*"r
* &j)"hX
为什么要用到数据库? kRs24=
World Wide Web (WWW) 不仅仅是一个提供信息的地方。如果你有什么东西,作一个网站,同样可以和全世界的人一起分享。但是,这并不是一件很容易的事。当网站越做越大时,你可能会遇到这样的问题: 7]_lSYwrb
K>k MKd1
网站包含了太多的东西,使得访问者不能够很快得得到他们想要的东西。这个问题在某种程度上对一个网站而言是致命的。 -R!qDA"
访问者想要向你提供信息,而且这些信息必须保存下来以备后用。 ,w.`(?I/
上面的两个问题,都可以通过数据库来解决! LE_1H>
$*| :A
在 WWW 的世界中,数据库无处不在。大如 Yahoo! , Amazon , eBay ,小到一个简单的留言板,都可以看到数据库的用武之地。甚至可以说,数据库是一切高级应用的基础。 jafq(t
VV(>e@Bc4
为什么要用 PHP 和 MYSQL guC/eSxv
就我所知,几乎所有的主要的商业网站数据库都是基于 SQL 的。其中最为流行的可能得算 Oracle 了。它很有威力,当然,也价格不菲。 SQL 不是一个应用程序,而是一种语言,它是 Structured Query Language (结构化查询语言)的简写,用来对数据库进行操作和查询的。 +$ )C KC
B|IQ/g?
在最近的几年中,一些公司开发出了“开放代码”的 SQL 应用程序,其中最著名的可能算得上 MySQL 了。它不仅仅是免费的,对于一般的中小型数据库应用,它的表现并不比 Oracle 逊色。 e75k-
(89NK]2x
要在一个网站上运行 MySQL ,你需要一种脚本语言来和数据库进行交互。在过去, Perl 是最流行的。但现在看起来 PHP 似乎更为出色一些。不要问我他们之间有什么区别 ?? 过去我用 Perl ,它也工作的很好,但是现在好像每个人都喜欢用 PHP 了。它的流行当然有它的道理。 {IeW~S'&
.+G),P)
需要的软件 U*ZP>Vv
这部分的内容, ChinaByte 网络学院前些时候的文章中已有介绍。读者可以参考《为 win98 设置本地 PHP 开发》一文。这儿不再详细介绍。 t)o #!)|
(/&IBd-
HTML 和 PHP JM{S49Lx
作 者 : 扬眉 编译 本文点击次数:398 *G^n<p$"
#@,39!;,:O
我们来看看 PHP 是如何工作的。看看下面的这段代码: 8Ek<J+&|I
#e.2m5T
< html> Na^1dn
khl(9R4a
< body> 2,nKbE9*
:&=TE 2
< ?php 9.|+KIRb
d"nz/$
print "Hello, world."; j.$#10*:
lz!F{mR
?> s-eC' )w~E
0s = h*"[
< /body> iTU8WWY<
Xj^6ZJc
< /html> G7k0P-r,0
$Yt29AQ
当请求这个页面的时候,它将在浏览器中显示“ Hello , world ”。 ,\;;1Kq
'Y+AU#1~H
可以看到, PHP 脚本是嵌入在 HTML 文件中的。它以“ < ? ”开始,以“ ?> ”结束。不仅如此,我们甚至还可以把 HTML 标签也嵌入在 PHP 脚本中: ?lv{;4BC
&\] [:kG;
< ?php 07"dU
\5^#5_<
print "< html>"; lKs*KwG
v]g/
5qI&
print "< body>"; \4wM8j
sk~rjH]-g$
print "Hello, world."; l=5(5\
m?-3j65z
print "< /body>"; 05:`(vl
%}cGAHV
print "< /html>"; p(MhDS\J
UYH;15s
?> >Fm}s,
U">D_ 8
两种方法殊途同归,效果是一样的。但是在一些特别的情况下,选择其中的一种要更为方便一些。 TX]4Y953D
PHP 的 prints 语句 PY:
l
作 者 : 扬眉 编译 本文点击次数:398 "U34D1I)#
}N5>^y
PHP 和 HTML 最简单的交互是通过 print 语句来实现的: ;C%40;Q
59";{"sw
< ?php -zg,pK$+
CjM+%l0MW
print "Hello, world."; AiSO|!<.N
$]4^ENkI
?> ll{jE
FG7}MUu
print 是最为简单也使用的最多的函数,用来把一些文本显示在浏览器窗口中, echo 函数和 print 相类似,但是你可以用“,”号来分隔多个要显示得内容,这在混合字符串常量和变量的显示时要方便一些。 v?rjQ'OP
gZgb-$b
还有一个 printf 函数,用来格式化数字的输出。可以把一个数作为整数,或者用科学计数法显示出来。 *L8Pj`zR
Q44Pg$jp
在这几个函数中,圆括号的使用与否是不同的: ks7g*; 3{@
38!$9)
echo 一定不能带有圆括号 k,M%/AXd
printf 却一定要有 693J?Yah[
print 可有可无 cu|gM[
要显示一个字符串或者一个数字很简单,只要把变量名或者常量跟在 print 语句后面就可以了。但是,如果要显示一个数组,是不是也是写成这样呢: $rDeI-)S
@D8c-`LC"*
print $myarray; :(?joLA
JwbC3t):@
它输出的结果将是“ Array ”, PHP 告诉你 $myarray 是一个数组。这在你拿不准一个变量是否是数组时会有一些用处,但是现在我们希望看到的是数组的内容。 Nm%&xm
|@={:gRJ{x
你可以用 implode 函数来把一个数组转换成字符串。它包含两个参数,第一个是数组变量名,第二个是数组内容的分隔符。当转换完成之后,数组的内容被分隔符联系起来形成一个字符串: -UkP{x)S
>z6(fM`i
$implodedarray = implode ($myarray, ", "); `h12
{zBf *x
print $implodedarray; r00waw>C\
p~I+ZYWF'
还可以用 array_walk 函数来实现数组的显示。这个函数对数组的每个内容执行同一个函数操作。例如: <OF7:f
l2>G +t (,
function printelement ($element) 9g+/^j^>?f
_{&znXf>?6
{ "<0BCJJ
-;'8#"{`^
print ("$element< p>"); d8Jy$,/`?
.pQH>;k]K
} STs~GOm-
JpE4 o2
array_walk($myarray, "printelement"); zJ7vAL
PHP 如何向 MySQL 发送数据 zcD&xoL\H
作 者 : 扬眉 编译 本文点击次数:398 9H?er_6Yf
bT}P":*y
你应该对 HTML 表单比较了解了,下面的一段代码是一个很简单的 HTML 表单: CQ2{5
EtJyI&7VK
< html> z71.5n!C
`?{QCBVj
< body> Z5;1ySn{
$6h:j#{JE
< form action=submitform.php3 method=GET> =C8 t5BZ"
U?JZ23>bbw
姓 : < input type=text name=first_name size=25 maxlength=25> >-
]tOH,0
kVw5z3]Xg
名 : < input type=text name=last_name size=25 maxlength=25> KgX~PP>
*}Zd QJL
< p> cBM
A.'uIL
),0_ C\
< input type=submit> U .hV1
5Fm.] /
< /form> rOw""mE
!HL7a]PB
< /body> szMh}q"u
0G1?
< /html> 6#fl1GdH-
Hv(0<k6oH
当你输入数据,并按下 submit 按钮后,这个表单将把数据发送到 submitform.php3 。再由这个 PHP 脚本来处理收到的数据,下面就是 submitform.php3 的代码: ?`Qw=8]`
\-N
4G1
< html> 7}>j [
<~t38|Ff@
< body> H1rge<
z$oA6qB)
< ?php Z+)R%Z'aL
<",4O
mysql_connect (localhost, username, password); 4m$n Vv
[ jve
|-v=
w-};\]I
s/UIo^m
mysql_select_db (dbname); +I#4+0f
-fuSCj
mysql_query ("INSERT INTO tablename (first_name, last_name) k'}}eu/ q
/E$"\md
VALUES ('$first_name', '$last_name') jFpXTy[>
-X5rGp++
"); dG}fpQ3&
JLm0[1Lzd
print ($first_name); OEy'8O$
lBh|+KN
print (" "); 1@RctI_}
S9}P5;u
print ($last_name); BbUZ,X*Y
\ }>1$kH;
print ("< p>"); )`yxJ;O@$
^;n,C+
print (" 感谢填写注册表 "); bEP-I5j1t
23@e?A=C
?> KB <n-'
HS.3PE0^C
< /body> LF* 7;a
Kf2*|ZHj
< /html> Um]>B`."wK
~ z*
在代码的第三行中的 "username" 和 "password" 分别代表你登陆 MySQL 数据库的账号和密码。在第五行中的 "dbname" 表示 MySQL 数据库的名称。在第十三行中的 "tablename" 是数据库中的一个数据表的名称。 ]78I
*5 ]fjh{
当你按下 submit 之后,可以看到你输入的名字被显示在一个新的页面中。再看一看浏览器的 URL 栏,它的内容应该是像这样的: 1u75
ZN-J!e"`
… /submitform.php3?first_name=Fred&last_name=Flintstone +"6_rbeuO
UOSa`TZbZ
因为我们用到的是表单 GET 方法,因此数据是通过 URL 来传送到 submitform.php3 的。显然, GET 方法是有局限性的,当要传递的内容很多时,就不能用 GET 了,只能用 POST 方法。但不管用什么方法,当数据传送完成后, PHP 自动的为每一个表单中的字段建立一个和他们的名字(表单的 name 属性)相同的变量。 q PuxYU
#qT 97NQ
PHP 变量都已用一个美元符号开头的,这样,在 submitform.php3 脚本处理的过程中,就会有 $first_name 和 $last_name 这两个变量了,变量的内容就是你输入的内容。 ]H0BUg
oQI3Yz
我们来检查一下你输入的名字是否真的被输入到数据库中了。启动 MySQL, 在 mysql> 提示符下输入: B5*{85p(u
!/ TeTmo
mysql> select * from tablename; q0{KYWOvk
Ke,UwYG2~G
你应该可以得到一个表,内容就是你刚才输入的了: o)Kx:l +f
\ F#mwl,>"
+------------+------------+ 3]WIN_h
=_I2ek
| first_name | last_name | `DIIJ<;g
^-cj=on=Q
+------------+------------+ hNmC(saMGm
#P=rP=
| 柳 | 如风 &}@U#w]l
R8P7JY[h
+------------+------------+ &G7JGar
C%t~?jEK~^
1 rows in set (0.00 sec) o$oW-U
YlwCl4hq
我们再来分析一下 submitform.php3 是如何工作的: |`_qmk[:R
Enm#\(j
脚本的开始两行是: //]g78]=O
{ER!
0w/
mysql_connect (localhost, username, password); SY>i@s+ML
KhAj`vOzK
J?Brnf.
z kQV$n{
mysql_select_db (dbname); )Q9m,/F
DvHcT]l>5
这两个函数调用用来打开 MySQL 数据库,具体的参数的含义刚才已经说过了。 ^;@q^b)ZP
9KRHo%m
下面的一行是执行一个 SQL 语句 : TKj8a(R_
K,bv\j;f
mysql_query ("INSERT INTO tablename (first_name, last_name) UhYeyT
x$d3fsEE
VALUES ('$first_name', '$last_name') /+pbO-r W*
m5Q,RwJ!xK
"); I-oI,c%+
>(S4h}^I
mysql_query 函数就是用来对选定的数据库执行一个 SQL 查询。你可以在 mysql_query 函数中执行任何的 SQL 语句。被执行的 SQL 语句必须作为一个字符串用双引号括起来,在其中的变量要用单引号括起来。 <#<4A0:
ty[bIaQi
有一个要注意的事情: MySQL 的语句要用一个分号 (;) 结束,一行 PHP 代码同样也是这样,但是在 PHP 脚本中的 MySQL 语句是不能有分号的。也就是说,当你在 mysql> 的提示符下输入 MySQL 命令,你应该加上分号: _"SE^ _&