PHP 和 MySQL 基础教程(一) @C[p? ak
HTML 和 PHP 、MySQL 的交互 d^tY?*n
0i8\Lu6
为什么要用到数据库? #pW!(tfN^a
World Wide Web (WWW) 不仅仅是一个提供信息的地方。如果你有什么东西,作一个网站,同样可以和全世界的人一起分享。但是,这并不是一件很容易的事。当网站越做越大时,你可能会遇到这样的问题: D(|+z-}M
nB :i G
网站包含了太多的东西,使得访问者不能够很快得得到他们想要的东西。这个问题在某种程度上对一个网站而言是致命的。 {hf_Xro&
访问者想要向你提供信息,而且这些信息必须保存下来以备后用。 ^e_uprZWm
上面的两个问题,都可以通过数据库来解决! izl-GitP
Jc5YGj 7
在 WWW 的世界中,数据库无处不在。大如 Yahoo! , Amazon , eBay ,小到一个简单的留言板,都可以看到数据库的用武之地。甚至可以说,数据库是一切高级应用的基础。 /5epDDP-t5
!
,H6.IH;S
为什么要用 PHP 和 MYSQL e~># M$
就我所知,几乎所有的主要的商业网站数据库都是基于 SQL 的。其中最为流行的可能得算 Oracle 了。它很有威力,当然,也价格不菲。 SQL 不是一个应用程序,而是一种语言,它是 Structured Query Language (结构化查询语言)的简写,用来对数据库进行操作和查询的。 [K4k7$
IS[q'Cv*
在最近的几年中,一些公司开发出了“开放代码”的 SQL 应用程序,其中最著名的可能算得上 MySQL 了。它不仅仅是免费的,对于一般的中小型数据库应用,它的表现并不比 Oracle 逊色。 "B"ql-K
A/lznBHR
要在一个网站上运行 MySQL ,你需要一种脚本语言来和数据库进行交互。在过去, Perl 是最流行的。但现在看起来 PHP 似乎更为出色一些。不要问我他们之间有什么区别 ?? 过去我用 Perl ,它也工作的很好,但是现在好像每个人都喜欢用 PHP 了。它的流行当然有它的道理。 8
ks\-38n1
!~7lY]_U
需要的软件 qJl DQc-
这部分的内容, ChinaByte 网络学院前些时候的文章中已有介绍。读者可以参考《为 win98 设置本地 PHP 开发》一文。这儿不再详细介绍。 In:V.'D/>t
L:@COy
HTML 和 PHP \f Kn} ]kG
作 者 : 扬眉 编译 本文点击次数:398 Unt]=S3u
4~oRcO8!Y
我们来看看 PHP 是如何工作的。看看下面的这段代码: =1!.g"0
@_c&lToj_
< html> g.;2N 9
-cn`D2RP
< body> cR55,DR,#W
[;-;{
*{G
< ?php L9,GUtK{
gth_Sz5!#
print "Hello, world."; N 5{w
\>.[QQVI"l
?> \oGU6h<
^aJ]|*m
< /body> =)iAU/*N
n
>E1\($
< /html> *N{k#d/
9MQwc
当请求这个页面的时候,它将在浏览器中显示“ Hello , world ”。 bng/v
/=#~8
可以看到, PHP 脚本是嵌入在 HTML 文件中的。它以“ < ? ”开始,以“ ?> ”结束。不仅如此,我们甚至还可以把 HTML 标签也嵌入在 PHP 脚本中: Edcv>}PfE
d:]ZFk_*
< ?php {m,LpI0wG
]*)l_mut7
print "< html>"; +>u 8r&Jw.
QJx<1#
print "< body>"; fcohYo5mh
0f3>s>`M
print "Hello, world."; w9gfva$&
5yV>-XT+-
print "< /body>"; mQU t 'j4
@l_rB~
print "< /html>"; Gw6!cp|/
_]3#C[1L
?> $|!3ks
p>T
两种方法殊途同归,效果是一样的。但是在一些特别的情况下,选择其中的一种要更为方便一些。 |x _jpR
PHP 的 prints 语句 Ts=TaRwWf
作 者 : 扬眉 编译 本文点击次数:398 \qG` ts
28}L.>5k
PHP 和 HTML 最简单的交互是通过 print 语句来实现的: 8yZs>Og?
{Ov{O,c5
< ?php &f)pU>Di
(Nf!E[}Z
print "Hello, world."; wYv++<
z
r=RiuxxTq
?> (v}l#M7w
=gd~rk9
print 是最为简单也使用的最多的函数,用来把一些文本显示在浏览器窗口中, echo 函数和 print 相类似,但是你可以用“,”号来分隔多个要显示得内容,这在混合字符串常量和变量的显示时要方便一些。 (CYQ>)a
E(*CEW.V*
还有一个 printf 函数,用来格式化数字的输出。可以把一个数作为整数,或者用科学计数法显示出来。 =|^R<#%/
2G:KaQ)
在这几个函数中,圆括号的使用与否是不同的: FiXE0ZI$0q
K\lu;
echo 一定不能带有圆括号 )U}`x }:,
printf 却一定要有 {p(6bsn_#]
print 可有可无 NVf_#p"h
要显示一个字符串或者一个数字很简单,只要把变量名或者常量跟在 print 语句后面就可以了。但是,如果要显示一个数组,是不是也是写成这样呢: [8WG
?xQm_
91X^
print $myarray; 1dy"
ojIGfQV
它输出的结果将是“ Array ”, PHP 告诉你 $myarray 是一个数组。这在你拿不准一个变量是否是数组时会有一些用处,但是现在我们希望看到的是数组的内容。 "%rU1/@#
>4=7t&h
你可以用 implode 函数来把一个数组转换成字符串。它包含两个参数,第一个是数组变量名,第二个是数组内容的分隔符。当转换完成之后,数组的内容被分隔符联系起来形成一个字符串: {HVsRpNEf
|F~U
$implodedarray = implode ($myarray, ", "); C,<FV+r=^
uCWBM
print $implodedarray; cj#.Oaeq*
S1i~r+jf
还可以用 array_walk 函数来实现数组的显示。这个函数对数组的每个内容执行同一个函数操作。例如: @'J[T: e
#%z@yg
function printelement ($element) %~lTQCPE
zmFKd5
{ ,v9*|>4
G{a_\'7
print ("$element< p>"); es$<Vkbp
R!x
/,6,_
} |B\76Nk
{q);1Nnf
array_walk($myarray, "printelement"); X#MC|Fzy@
PHP 如何向 MySQL 发送数据 uxW<Eh4H*
作 者 : 扬眉 编译 本文点击次数:398 %=vU
Z4
6D*x5L-1o
你应该对 HTML 表单比较了解了,下面的一段代码是一个很简单的 HTML 表单: Jb7^'P
97}l`z;Z
< html> .&KC2#4
(S&D
< body> `cRRdD:dA
v/Xz.?a\jF
< form action=submitform.php3 method=GET> }ol<DV
VY!A]S"
姓 : < input type=text name=first_name size=25 maxlength=25> 4%SA%]a L1
}$3pS:_N~
名 : < input type=text name=last_name size=25 maxlength=25> `2G%&R,k"D
S<w?,Z
< p> Z,,q mwd
S=`#X,Wo
< input type=submit> CL!s #w1I\
vH"^a/95|
< /form> jhka;m
pE G!j ~
< /body> Tx$bg(
,@8*c0Y~<!
< /html> W)odaab7
&&sm7F%
当你输入数据,并按下 submit 按钮后,这个表单将把数据发送到 submitform.php3 。再由这个 PHP 脚本来处理收到的数据,下面就是 submitform.php3 的代码: S$GWY^5}{
<$`
^
< html> [XNDYaF8
mr XmM<
< body> i%r+/D)KvG
i6:O9Km
< ?php 7{OD/*|
H+N6VVnO
mysql_connect (localhost, username, password); wJWofFz
9%?a\#C
,Q+.kAh !G
^^[A\'
mysql_select_db (dbname); |Tk'H&
U/{#~P5s
mysql_query ("INSERT INTO tablename (first_name, last_name) F||oSJrI
cB 1NN<
VALUES ('$first_name', '$last_name') TJ0;xn6o
>ZnnGX6$(
"); 6J3<k(#:
'u:J
"
print ($first_name); &f/"ir[8i
U1=\ `)u;
print (" "); G,@Jo[e
/+?eSgM/
print ($last_name); H66F4i
'RIx}vPf
print ("< p>"); JuRx>F4
4FJA+
print (" 感谢填写注册表 "); TmLfH
d
]P4?jKI
?> 2-@z-XKn
7$JE+gL/7
< /body> {$_Gjv
jG/@kh*m
< /html> <s (o?U
M4L<u,\1s
在代码的第三行中的 "username" 和 "password" 分别代表你登陆 MySQL 数据库的账号和密码。在第五行中的 "dbname" 表示 MySQL 数据库的名称。在第十三行中的 "tablename" 是数据库中的一个数据表的名称。 -^$IjK-N
kO v37c'
当你按下 submit 之后,可以看到你输入的名字被显示在一个新的页面中。再看一看浏览器的 URL 栏,它的内容应该是像这样的: Oa'T$'
f2i9UZ$=e!
… /submitform.php3?first_name=Fred&last_name=Flintstone AXPdgo6
XWUi_{zn
因为我们用到的是表单 GET 方法,因此数据是通过 URL 来传送到 submitform.php3 的。显然, GET 方法是有局限性的,当要传递的内容很多时,就不能用 GET 了,只能用 POST 方法。但不管用什么方法,当数据传送完成后, PHP 自动的为每一个表单中的字段建立一个和他们的名字(表单的 name 属性)相同的变量。 n,b6|Y0
LcmZ"M6
PHP 变量都已用一个美元符号开头的,这样,在 submitform.php3 脚本处理的过程中,就会有 $first_name 和 $last_name 这两个变量了,变量的内容就是你输入的内容。 8 v<*xy
a )M3t
我们来检查一下你输入的名字是否真的被输入到数据库中了。启动 MySQL, 在 mysql> 提示符下输入: V`"Cd?R0Z
?H21Ru>:*
mysql> select * from tablename; $gaGaB
e3%dNa
你应该可以得到一个表,内容就是你刚才输入的了: xHuw ?4
rTA#4.*&
+------------+------------+ ;^so;>F
8MBvp*
| first_name | last_name | 6JE_rAab
E-HK=D&W/
+------------+------------+ v2f|%i;tq
/k=krAz.
| 柳 | 如风 bHioM{S
RWXN
+------------+------------+ g"X!&$&
O7zj8
1 rows in set (0.00 sec) )$QZ",&5
NxN~"bfh
我们再来分析一下 submitform.php3 是如何工作的: x UTlM
r<