PHP 和 MySQL 基础教程(一) }sN9QgE
HTML 和 PHP 、MySQL 的交互 ,,-[P*@
f;;
S
为什么要用到数据库? \(v_",
World Wide Web (WWW) 不仅仅是一个提供信息的地方。如果你有什么东西,作一个网站,同样可以和全世界的人一起分享。但是,这并不是一件很容易的事。当网站越做越大时,你可能会遇到这样的问题: N X#/1=
R S_lQ{'
网站包含了太多的东西,使得访问者不能够很快得得到他们想要的东西。这个问题在某种程度上对一个网站而言是致命的。 JnKbd~
访问者想要向你提供信息,而且这些信息必须保存下来以备后用。 @nW(KF
上面的两个问题,都可以通过数据库来解决! -W"0,.Dvg
Bv|9{:1%X}
在 WWW 的世界中,数据库无处不在。大如 Yahoo! , Amazon , eBay ,小到一个简单的留言板,都可以看到数据库的用武之地。甚至可以说,数据库是一切高级应用的基础。 1VM5W!}
d+| !6
为什么要用 PHP 和 MYSQL :FgRe,D
就我所知,几乎所有的主要的商业网站数据库都是基于 SQL 的。其中最为流行的可能得算 Oracle 了。它很有威力,当然,也价格不菲。 SQL 不是一个应用程序,而是一种语言,它是 Structured Query Language (结构化查询语言)的简写,用来对数据库进行操作和查询的。 D0_x|a
^Ypx|-Vu!
在最近的几年中,一些公司开发出了“开放代码”的 SQL 应用程序,其中最著名的可能算得上 MySQL 了。它不仅仅是免费的,对于一般的中小型数据库应用,它的表现并不比 Oracle 逊色。 /xbF1@XtL
B0SmE_u_N
要在一个网站上运行 MySQL ,你需要一种脚本语言来和数据库进行交互。在过去, Perl 是最流行的。但现在看起来 PHP 似乎更为出色一些。不要问我他们之间有什么区别 ?? 过去我用 Perl ,它也工作的很好,但是现在好像每个人都喜欢用 PHP 了。它的流行当然有它的道理。 2*;Y%NcP[
~m=%a
需要的软件 '-~/!i+=
这部分的内容, ChinaByte 网络学院前些时候的文章中已有介绍。读者可以参考《为 win98 设置本地 PHP 开发》一文。这儿不再详细介绍。 Nk~dfY<s
a/`Yh>ou
HTML 和 PHP $}c@S0%P"
作 者 : 扬眉 编译 本文点击次数:398 bB:X<
uNGxz*e
我们来看看 PHP 是如何工作的。看看下面的这段代码: "ddH7:(k<
COJ!b
< html> 6&Ir0K/
]O `
[v
< body> ]6[d-$#^ko
\@t5S
< ?php NB#*`|qt
@ BW8`Ky1
print "Hello, world."; ZvKMRW
.qPfi]
ty
?> R}26 "+~
D;n%sRq(Z
< /body> #E@i @'T
lH>XIEj
< /html> TRok4uc
~,1q :Kue
当请求这个页面的时候,它将在浏览器中显示“ Hello , world ”。 YU,:3{9,
OYy !4Fp
可以看到, PHP 脚本是嵌入在 HTML 文件中的。它以“ < ? ”开始,以“ ?> ”结束。不仅如此,我们甚至还可以把 HTML 标签也嵌入在 PHP 脚本中: $NRb'
@h,$&=HY
< ?php kw}1 CXD
A+DYIS
print "< html>"; <%7
V`,*g/
xJGeIh5
print "< body>"; \ \}/2#1=c
iRtDZoiD'
print "Hello, world."; K7VG\Ec
"A+F&C>
print "< /body>"; @&B!P3{f
6|Q'\
print "< /html>"; mnjA8@1
.p}Kl$K]
?> v|2j~
Rw 8o ]
两种方法殊途同归,效果是一样的。但是在一些特别的情况下,选择其中的一种要更为方便一些。 VrxH6 Y
PHP 的 prints 语句 PtOnj)Q
作 者 : 扬眉 编译 本文点击次数:398 e_-/p`9
RZ%X1$
PHP 和 HTML 最简单的交互是通过 print 语句来实现的: :L0W"$
"6QMa,)D
< ?php eR`<9KBH
LL
[>Uu?Y
print "Hello, world."; S>E.*]_
dhkpkt<G8
?> 1D6O=j\
FM[To
print 是最为简单也使用的最多的函数,用来把一些文本显示在浏览器窗口中, echo 函数和 print 相类似,但是你可以用“,”号来分隔多个要显示得内容,这在混合字符串常量和变量的显示时要方便一些。 Fo~v.+^?
>6+K"J-@
还有一个 printf 函数,用来格式化数字的输出。可以把一个数作为整数,或者用科学计数法显示出来。 i@L2W>{P
`1]9(xwhQ0
在这几个函数中,圆括号的使用与否是不同的: q:^Cw8
q(Q9FonU
echo 一定不能带有圆括号 K67 ?
d
printf 却一定要有 ppKCY4
print 可有可无 YYW70k:
要显示一个字符串或者一个数字很简单,只要把变量名或者常量跟在 print 语句后面就可以了。但是,如果要显示一个数组,是不是也是写成这样呢: v1)6")8o+
/vu!5?S
print $myarray; F JhVbAMd
4&fnu/,Z
它输出的结果将是“ Array ”, PHP 告诉你 $myarray 是一个数组。这在你拿不准一个变量是否是数组时会有一些用处,但是现在我们希望看到的是数组的内容。 #57z-x[1
KW^aARJ)
你可以用 implode 函数来把一个数组转换成字符串。它包含两个参数,第一个是数组变量名,第二个是数组内容的分隔符。当转换完成之后,数组的内容被分隔符联系起来形成一个字符串: Lm#d.AD)
G9Tix\SpF
$implodedarray = implode ($myarray, ", "); &y\2:IyA
g1,
print $implodedarray; |pSoBA9U
H_nJST<v`
还可以用 array_walk 函数来实现数组的显示。这个函数对数组的每个内容执行同一个函数操作。例如: BwD1}1jp
V}+;bbUc-
function printelement ($element) Dj"=kL0
bz]O(`
{ b0 `9wn
HH@xnd
print ("$element< p>"); *!@x<Hf<
kZ%W?#
} [)vwg`]
P@`"MNS
array_walk($myarray, "printelement"); $uynW3h
PHP 如何向 MySQL 发送数据 4LJ}>e
作 者 : 扬眉 编译 本文点击次数:398 rF3]AW(
olxP`iK
你应该对 HTML 表单比较了解了,下面的一段代码是一个很简单的 HTML 表单: 6qpV53H
\zL7j4
< html> QC,(rB
)m;qv'=!
< body> gi@ji-10
B?Sfcq-
< form action=submitform.php3 method=GET> 1[9j`~[([
$OoN/^kv
姓 : < input type=text name=first_name size=25 maxlength=25> pY#EXZ#
Q.dy
$`\
名 : < input type=text name=last_name size=25 maxlength=25> K/m)f#
}px]
< p> l{m~d!w`a
X$Vz
< input type=submit> fO!O"D5
dU^<7 K:S
< /form> G11.6]?Gg
N@a'd0oTd
< /body> i9k]Q(o
&})d%*n
< /html> .|`=mx
Sb4PCt
当你输入数据,并按下 submit 按钮后,这个表单将把数据发送到 submitform.php3 。再由这个 PHP 脚本来处理收到的数据,下面就是 submitform.php3 的代码: 1y-lZ}s_
M8j(1&(:
< html> Mr,y|
15o
*r
< body> sxwW9_C
w[oQ}5?9'
< ?php mKQST ]5
;s.5\YZ"k
mysql_connect (localhost, username, password); 05VOUa*pb
Dke($Jr{
OK?3,<x
[^}>AC*im
mysql_select_db (dbname); &Yf#O*
^ lc}FN
mysql_query ("INSERT INTO tablename (first_name, last_name) ]{2{:`s
eMl]td rI
VALUES ('$first_name', '$last_name') 'W?v.W &
<r +!hJ[s'
");
&QOWW}
1u"*09yZd
print ($first_name); ]O7.ss/2
NBqV0>vR
print (" "); 0fPHh>u
:ONuWNY
N
print ($last_name); cR=94i=t
jq("D,
print ("< p>"); 29iIG
'N
Y=:KM~2hv
print (" 感谢填写注册表 "); U!\2K~
^?s~Fk_V
?> P"bknXL
lsB9;I^+x
< /body> dm,}Nbc91(
n-hvh-ZO
< /html> ,jbGM&.C
rWFcIh5
在代码的第三行中的 "username" 和 "password" 分别代表你登陆 MySQL 数据库的账号和密码。在第五行中的 "dbname" 表示 MySQL 数据库的名称。在第十三行中的 "tablename" 是数据库中的一个数据表的名称。 kByrhK5U
vcw>v={x
当你按下 submit 之后,可以看到你输入的名字被显示在一个新的页面中。再看一看浏览器的 URL 栏,它的内容应该是像这样的: Gin_E&%g
rQcRjh+E
H
… /submitform.php3?first_name=Fred&last_name=Flintstone .|-l+
8R\>FNk;
因为我们用到的是表单 GET 方法,因此数据是通过 URL 来传送到 submitform.php3 的。显然, GET 方法是有局限性的,当要传递的内容很多时,就不能用 GET 了,只能用 POST 方法。但不管用什么方法,当数据传送完成后, PHP 自动的为每一个表单中的字段建立一个和他们的名字(表单的 name 属性)相同的变量。 SLdN.4idK
:WK"-v
PHP 变量都已用一个美元符号开头的,这样,在 submitform.php3 脚本处理的过程中,就会有 $first_name 和 $last_name 这两个变量了,变量的内容就是你输入的内容。 MegE--h
#+K
Kvk
我们来检查一下你输入的名字是否真的被输入到数据库中了。启动 MySQL, 在 mysql> 提示符下输入: +}7Ea:K
la\zaKC;>
mysql> select * from tablename; =My}{n[
%XP_\lu]
你应该可以得到一个表,内容就是你刚才输入的了: PPoI>J
~K~b`|1
+------------+------------+ f0uUbJ5
HzRX$IKB3(
| first_name | last_name | nT.L}1@
hWD !
+------------+------------+ Hp)X^O"
PIZ
C;K4|
| 柳 | 如风 M.ZEqV+k
V$/u
+------------+------------+ ,vPe}OKj
Gb(C#,xbK
1 rows in set (0.00 sec) nu&_gF,{
k}-yOP{
我们再来分析一下 submitform.php3 是如何工作的: {$EH@$./
=?/N5O(
脚本的开始两行是: vkd[:CC
N\9}\Rk@
mysql_connect (localhost, username, password); -O|&