文章詳情頁
PHP新手上路(十一)
瀏覽:4日期:2024-03-01 10:35:20
數據庫鏈接 10. PHP最大的特色就是操作數據庫的能力特別的強大,PHP提供對多種數據庫的支持。 通過PHP你可以輕松的連接到數據庫,請求數據并將其顯示在你的web站點中,甚至修改數據庫中的數據。在這一節里我們主要以在互聯網上跟PHP一起使用得最多的MySQL數據庫為例,介紹一下相關的MySQL數據庫的操作函數以及數據庫的基本操作等方面的知識。 在MySQL數據庫中,我們用來連接數據庫的函數有兩個,它們分別為: integer mysql_connect(string host,string user,string password); integer mysql_pconnect(string host,string user,string password); mysql_connect函數和mysql_pconnect函數都是對指定主機上MySQL數據庫的連接,如果該數據庫位于一個不同的端口,則可以在主機名后加上冒號和端口號。函數的參數也可以缺省不填,如果不填參數,默認的主機名是“localhost”,用戶名為數據庫管理員,默認值為“root”,密碼為空。與數據庫連接成功之后,這兩個函數都可以返回一個連接號,如果連接失敗,則返回一個false值。讓我們來看看下面幾句語句: <? $db=mysql_connect("localhost","user","password"); mysql_select_db("mydb",$db); ?> 注釋: $db=mysql_connect("localhost","user","password"); 我們將mysql的鏈接參數,包括主機名、用戶名和密碼作為mysql_connect()的參數,同時得到返回值為$db,這樣,在下面的語句中,我們就可以將變量$db作為一個連接mysql數據庫的連接號來使用。 mysql_select_db("mydb",$db); 將PHP程序鏈接到mydb數據庫中,這樣程序與數據庫的鏈接就完成了。 10.1 一個簡易的數據庫留言簿 在完成數據庫的鏈接之后,我們就可以對數據庫進行一系列的操作。下面是一個簡易的數據庫留言簿程序(guestbook.php3): 我假設你機子上的MySQL數據庫以及管理MYSQL數據庫的工具 Phpmyadmin_2. 0.5都已經安裝完成,并且可以正常工作。 我們要做的第一件事情是創建一個留言數據庫,假定名字為: mydb。 1、啟動瀏覽器,打開Phpmyadmin_2. 0.5 的管理WEB界面。 2、在“Create new database”文本框內輸入數據庫名稱mydb,然后按create按鍵。 下一步,我們要在該留言數據庫下創建一個數據表,假定名字為: guestbook。 創建該數據表的命令如下所示:;;CREATE TABLE guestbook (ID INT NOT NULL AUTO_INCREMENT, name CHAR(250), email CHAR(250), job CHAR(250), comments BLOB, PRIMARY KEY(ID));;;最后,將下面的留言簿程序挎貝到你機子的可寫目錄下面,并保存成guestbook.php3文件。就這么簡單,你已經有了自己的留言簿了。;;10.2 留言簿程序(guestbook.php3): <?php;;/* $host : your MySQL-host, usually 'localhost' */ /* $user : your MYSQL-username */ /* $password : your MySQL-password */ /* $database : your MySQL-database */ /* $table : your MySQL-table */ /* $page_title : the title of your guestbook-pages */ /* $admin_mail : email-address of the administrator to send the new entries to */ /* $admin_name : the name of the administrator */ /* $html_mail : say yes if your mail-agent can handle HTML-mail, else say no */ $host = "localhost"$user = ""$password = ""$database = "mydb"$table = "guestbook"$page_title = "pert guestbook"$admin_mail = "[email protected]"$admin_name = "Webmaster"$html_mail = "no"?> <HTML> <HEAD> <TITLE><?php echo $page_title; ?></TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" LINK="#000000"> <FONT FACE="Verdana" SIZE="-2"> <? /* connect to the database */ mysql_pconnect("$host","$user","$password") or die("Can't connect to the SQL-server"); mysql_select_db("$database"); /* action=view : retrieve data from the database and show it to the user */ if($action == "view") { /* function for showing the data */ function search_it($name) { /* some vars */ global $offset,$total,$lpp,$dir; global $table,$html_mail,$admin_name,$admin_mail; /* select the data to get out of the database */ $query = "SELECT name, email, job, comments FROM $table"$result = mysql_query($query); $total= mysql_numrows($result); print "<CENTER><FONT FACE="Verdana" SIZE="-2"><A HREF="guestbook.php3?action=add" onMouseOver="window.status='Add your name';return true" onMouseOut="window.status='';return true" TITLE="Add your name">加入留言</A></FONT></CENTER><br><br>"if ($total== 0) { print "<CENTER>此刻沒人留言</CENTER><br><br>"} elseif ($total> 0) { /* default */ $counter=0; if ($dir=="") $dir="Next"$lpp=5; if ($offset==0) $offset=0; if ($dir=="Next") { if ($total > $lpp) { $counter=$offset; $offset+=$lpp; $num=$offset; if ($num > $total) { $num=$total; } } else { $num=$total; } } elseif ($dir=="Previous") { if ($total > $lpp) { $offset-=$lpp; if ($offset < 0) { $offset=0; } $counter=$offset-$lpp; if ($counter < 0) $counter=0; $num=$counter+$lpp; } else { $num=$total; } } while ($counter < $num) { $j=0; $j=$counter + 1; /* now really grab the data */ $i1=mysql_result($result,$counter,"name"); $i2=mysql_result($result,$counter,"email"); $i3=mysql_result($result,$counter,"job"); $i4=mysql_result($result,$counter,"comments"); $i4 = stripslashes ("$i4"); /* print it in a nice layout */ print "<CENTER>n"print "<TABLE WIDTH=400 BORDER=0 ALIGN=CENTER VALIGN=TOP><TR><TD><FONT FACE="Verdana" SIZE="-2">n"print "<HR>n"print "<BR><B>Name:</B> $i1n"print "<BR><B>email:</B><A HREF="mailto:$i2" onMouseOver="window.status='Email $i2';return true" onMouseOut="window.status='';return true" TITLE="Email $i2">$i2</A>n"print "<BR><B>Job:</B> $i3n"print "<BR><B>Comment:</B>n"print "<BR>$i4n"print "</FONT></TD></TR></TABLE>n"print "</CENTER>n"$counter++; } } mysql_close(); } /* execute the function */ search_it($name); /* See if we need to put on the NEXT or PREVIOUS buttons */ if ($total > $lpp) { echo("<form action="$PHP_SCRIPT" method="POST">n"); /* See if we need a PREVIOUS button */ if ($offset > $lpp) { echo("<input type="submit" value="Previous" name=dir>n"); } /* See if we need a NEXT button */ if ($offset < $total) { echo("<input type="submit" value="Next" name=dir>n"); } echo("<input type=hidden name="offset" value="$offset">n"); echo("<input type=hidden name="name" value="$name">n"); echo("</form>"); } } /* action=add : show a form where the user can enter data to add to the database */ elseif($action == "add") { ?> <TABLE WIDTH="460" ALIGN="CENTER" VALIGN="TOP"> <TH COLSPAN="2"><P>請您填寫留言</TH> <FORM NAME="guestbook" ACTION="guestbook.php3?action=send" METHOD="POST"> <TR> <TD ALIGN="RIGHT" VALIGN="TOP"> 您的大名:</TD> <TD><INPUT TYPE=text NAME=name></TD> </TR> <TR> <TD ALIGN="RIGHT" VALIGN="TOP"> 您的E-mail:</TD> <TD> <INPUT TYPE=text NAME=email></TD> </TR> <TR> <TD ALIGN="RIGHT" VALIGN="TOP"> 您的工作:</TD> <TD> <INPUT TYPE=text NAME=job></TD> </TR> <TR> <TD ALIGN="RIGHT" VALIGN="TOP"> 您的留言:</TD> <TD> <TEXTAREA NAME=comments COLS=40 ROWS=6></TEXTAREA> <P> <INPUT TYPE=submit VALUE=Submit> <INPUT TYPE=Reset VALUE=Reset>;;<A ALIGN="RIGHT" HREF="guestbook.php3?action=view" onMouseOver="window.status='Read all comments first';return true" onMouseOut="window.status='';return true" TITLE="Read all comments first"><FONT SIZE="-2">先觀看所有的留言</FONT></A> </TD> </TR> </FORM> </TABLE> </CENTER> <? } /* action=send : add the data from the user into the database */ elseif($action == "send") { /* check if a HTML-mail should be send or a plain/text mail */ if($html_mail == "yes") { mail("$admin_name <$admin_mail>","PHP3 Guestbook Addition","<HTML><BODY><FONT FACE="Century Gothic"><TABLE BORDER="0" WIDTH="100%" CELLSPACING="4"><TR>$name ($email) schreef het volgende bericht in het gastenboek :</TR><TR><TD ALIGN="LEFT"> </TD><TD ALIGN="LEFT" NOWRAP> </TD></TR><TR><TD ALIGN="LEFT">$comments</TD><TD ALIGN="LEFT" NOWRAP> </TD></TR><TR><TD ALIGN="LEFT"> </TD><TD ALIGN="LEFT" NOWRAP> </TD></TR><TR><TD ALIGN="LEFT">您的留言:</TD><TD ALIGN="LEFT" NOWRAP>$name</TD></TR><TR><TD ALIGN="LEFT">您的大名:</TD><TD ALIGN="LEFT" NOWRAP>$email</TD></TR><TR><TD ALIGN="LEFT">您的email:</TD><TD ALIGN="LEFT" NOWRAP>$job</TD></TR><TR><TD ALIGN="LEFT">您的工作:</TD></TR></TABLE></BODY></FONT></HTML>", "From: $name <$email>nReply-To: $name <$email>nContent-type: text/htmlnX-Mailer: PHP/" . phpversion()); } /* MySQL really hates it when you try to put things with ' or " characters into a database, so strip these...*/ $comments = addslashes ("$comments"); $query = "INSERT INTO guestbook VALUES('','$name', '$email', '$job', '$comments')"$result = MYSQL_QUERY($query); ?> <BR><P ALIGN = CENTER>感謝, <?php echo $name; ?>, 您的留言. <BR><P ALIGN = CENTER><A HREF="guestbook.php3?action=view" onMouseOver="window.status='View your comment now';return true" onMouseOut="window.status='';return true" TITLE="View your comment now">觀看留言</A><BR><BR> <? } /* if there's no action given, then we must show the main page */ else { /* get the number of entries written into the guestbook*/ $query = "SELECT name from guestbook"$result = MYSQL_QUERY($query); $number = MYSQL_NUMROWS($result); if ($number == "") { $entry = "還沒有人留過言"} elseif ($number == "1") { $entry = "目前留言人數1人"} else { $entry = "目前留言人數 $number 人"} echo "<CENTER><BR>"echo "<P>$entry<BR>"echo "<H4><FONT FACE="Verdana" SIZE="3"><A HREF="guestbook.php3?action=add" onMouseOver="window.status='請您留言';return true" onMouseOut="window.status='';return true" TITLE="Add your name to our guestbook">請您留言</A></FONT></H4>"if ($number > "") { echo "<H4><FONT FACE="Verdana" SIZE="3"><A HREF="guestbook.php3?action=view" onMouseOver="window.status='觀看留言';return true" onMouseOut="window.status='';return true" TITLE="View the names in our guestbook">觀看留言</A></FONT></H4>"} echo "</P></CENTER>"} ?> <BR><SMALL><CENTER>版權所有:<A onMouseOver="window.status='pert';return true" onMouseOut="window.status='';return true" TITLE="pert">無邊天際</A></CENTER></SMALL> </FONT> </BODY> </HTML>;;
標簽:
PHP
上一條:PHP新手上路(九)下一條:PHP新手上路(十)
排行榜