Website Database Basics With PHP and MySQL By Thomas Kehoe (kehoe@casafuturatech.com) January 11, 2000 PHP/Zend RC¾ã²z (¶i¦æºKͤu§@®Éºë¯«¤£¨Î, ¾É­P³¡¥÷ºK­n«~½è¤£°÷ºÉµ½ºÉ¬ü, ½Ð¦h¨£½Ì) January 21,2000 22:00 - January 22,2000 01:30 ªìĶ January 24,2000 15:30 - 17:30 §¹¦¨ ¬°¦ó­n¦bºô¯¸¤W¨Ï¥Î¸ê®Æ®w? ---------------------------------------------- ·íºô¯¸¤º®e¨C¤é­¿¼W®É, ·|¦³¨â­Ó°ÝÃD²£¥Í: 1.ºô¯¸¸ê®Æ¤Ó¦h¥H­P¯¸¤ÍµLªk§Ö³t§ä¨ì©Î¨ú±o 2.¯¸¤Í­n´£¨Ñ±z¸ê®Æ ¦pªG¦³¸ê®Æ®w«h¥H¤W°ÝÃD¥i¸Ñ(¸ê®ÆºÞ²z¤Î³B²z³£¤è«K) ¬°¦ó¿ï¥ÎPHP©MMySQL? --------------------------------------- MySQL¬O³ÌµÛ¦Wªºopen source SQLÀ³¥Îµ{¦¡, ªñ¥G§K¶O, ¦b¤¤¤p«¬¸ê®Æ®wªºÀ³¥Î¤£¤ñ Oracle»¹¦â, ¦Ó¥B¬O¦bUnix¥­¥x¤UªºÀ³¥Îµ{¦¡(·íµM¤]¦³Windows¥­¥xª©¥») Perl©MJava³£«Ü¤£¿ù, ¦ý¤ñ¸û¦h¤H¤w¿ï¾ÜPHP©MMySQL, ¦Ó¥Bªí²{§ó¨Î °Ñ¦Ò¤åÄm --------------- (²¤) ©Ò»ÝÀ³¥Î³nÅé ---------------------- (²¤) °õ¦æPHP -------------- °õ¦æMySQL ------------------- $ mysql -u username -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 31110 to server version: 3.22.25-log Type 'help' for help. mysql>use dbname; Database changed mysql> CREATE TABLE tablename ( -> first_name VARCHAR (25), -> last_name VARCHAR (25) -> ); mysql>show tables; +--------------------------+ | Tables in dbname | +--------------------------+ | tablename | +--------------------------+ 2 rows in set (0.00 sec) mysql> quit HTML»PPHP¤ÎMySQLªº¹ï¸Ü --------------------------------------------- print: ³Ì²³æªºPHP¿é¥X«ü¥O(±N¤å¦r¿é¥X¦ÜÂsÄý¾¹¤W, ¬A©·¥i¦³¥iµL) echo: »Pprint¦P, ¦ý¥i¥Î³rÂI(,)¨ÓÄ~Äò¼W¥[¿é¥X¦r¦ê(¤£¥i¦³¬A©·) printf: ®æ¦¡¤Æ¿é¥X(«ü¥O»Ý­n¬A©·) ¿é¥X¦r¦ê©M¼Æ­È«Ü²³æ, ¦Ü©ó¿é¥X°}¦C: print $myarray; ±N·|¿é¥X Array §A¥i¥Î implode±N°}¦CÂন¦r¦ê, ¥u­n«ü©w¤@¤À¹j¦r¤¸§Y¥i(¥H¤U¨Ò¤l¨Ï¥Î³rÂI) : $implodedarray = implode ($myarray, ", "); print $implodedarray; ¥t¤@ºØ¤è¦¡¬O¨Ï¥Îarray_walk, ³o¨ç¦¡±N¥H¬Y¨ç¦¡³B²z°}¦C¤¤¤§¨C­Ó¤¸¯À §A»Ý­n«Ø¥ß¤@­Ó¨ç¦¡, ¤£¯àª½±µ¨Ï¥ÎPHPªº§Y¦³¨ç¦¡¦p print function printelement ($element) { print ("$element

"); } array_walk($myarray, "printelement"); PHP±N¸ê®Æ¶Ç°e¨ìMySQL ----------------------------------------- submitform.html:-

First Name: Last Name:

·í«ö¤U°e¥X«öÁä®É, ¤W­z¸ê®Æ«K·|¶Çµ¹submitform.php3 (µ{¦¡½X¥H¤U) submitform.php3:- "); print ("Thanks for submitting your name."); ?> ¦Ó¥B¥i¥HÆ[¹î¨ìÂsÄý¾¹¤W·|Åã¥ÜÃþ¦ü¥H¤Uªººô§}®æ¦¡:- ¡K/submitform.php3?first_name=Fred&last_name=Flintstone ¨º¬O¦]¬°¨Ï¥ÎGETªº¤è¦¡¶Ç°eªº½t¬G ²{¦b³sµ²MySQL¸ê®Æ®w:- mysql> select * from tablename; +------------+------------+ | first_name | last_name | +------------+------------+ | Fred | Flintstone | +------------+------------+ 1 rows in set (0.00 sec) PHP±qMySQL¤¤Â^¨ú¸ê®Æ ---------------------------------------- searchform.html:-
Search For:

First Name:

Last Name:

searchform.php3:- "); } while($row = mysql_fetch_array($result)); //¸ÑŪ¸ê®Æ } else {print "Sorry, no records were found!";} ?> ´ú¸ÕQuery¬O§_¦¨¥\ ------------------------------- ´ú¸Õ´¡¤J(insert) Query:- $result = mysql_query ("INSERT INTO tablename (first_name, last_name) VALUES ('$first_name', '$last_name') "); if(!$result) { echo "INSERT unsuccessful: ", mysql_error(); exit; } ´ú¸ÕÂ^¨ú(select) Query:- $selectresult = mysql_query ("SELECT * FROM tablename WHERE first_name = '$first_name' AND last_name = '$last_name' "); if (mysql_num_rows($selectresult) == 1) { print "Your SELECT query was successful."; } elseif (mysql_num_rows($selectresult) == 0) { print "Your SELECT query was not successful."; exit; } ´ú¸Õ§R°£(delete) Query:- $deleteresult = mysql_query ("DELETE FROM tablename WHERE first_name = '$first_name' AND last_name = '$last_name' "); if (mysql_affected_rows($deleteresult) == 1) { print "Your DELETE query was successful."; } elseif (mysql_affected_rows($deleteresult) != 1) { print "Your DELETE query was not successful."; exit; } µù: ­ìµÛ³o³¡¥÷¦³­Ó¤p¿ù»~, ´N¬O¨Ï¥Î mysql_affected_rowsªº°Ñ¼Æ¤£¯à¨Ï¥Î $deleteresult, ÁöµM´ú¸Õ©Î³\¦³«Ü¤jªº¾÷²v¬O¥¿½Tªº, ¦ý¤]¦³¥i¯à¹J¤W¿ù»~ ªº®É­Ô, ¦]¬°mysql_affected_rows¬O­n¥Î³sµ²¿ëÃѾ¹(link identifier) ·í¦¨°Ñ¼Æ ¦Ó«D¥Ñmysql_query¶Ç¦^ªºµ²ªG (µ²ªG¬O¥¿­Èªí¥Ümysql_query°õ¦æ¦¨¥\, 0«h ¥¢±Ñ; ·ílink identifier­è¦n©M¶Ç¦^­È¤@¼Ë®É´ú¸Õµ²ªG·íµM¬O¥¿½Tªº) Tips°Ï¤]´£¨ìmysql_num_rows©Mmysql_affected_rows­nª`·Nªº°Ñ¼Æ°ÝÃD ¦Ómysql_query©Mmysql_db_queryªº¶Ç¦^­È·N¸q¤]¤£§¹¥þ¬Û¦P ÅçÃÒªí®æ¸ê®Æ(Form data) --------------------------------------- ¥h°£ªÅ¥Õ¦r¤¸ ----------------------- trim($first_name); ¥²¶ñªºÄæ¦ì ------------------- if (ereg(".", $first_name) == 1) // ÂI(.)¦bregular expression¤¤ªí¥Ü¥ô·N¦r¤¸ { // ¥H¤W´N¬O¦b$first_name¤¤´M§ä¥ô·N¦r¤¸, ¦³«h¶Ç¦^ 1 , §_«h¶Ç¦^0 print ("First name: "); print ("$first_name"); $verify = "OK"; } else { print ("Error: A first name is required."); $verify = "bad"; } eregÃþ«¬¨ç¦¡¦³: 1. ereg_replace »Ý¤T­Ó°Ñ¼Æ: «ö¶¶§Ç¬° "±ý´M¦r¼Ë", "¨ú¥N¦r¼Ë","«Ý³B²z¦r¦êÅܼÆ" 2. eregi »P ereg ¦P, °ßeregi¬O¤£¤À¦r¥À¤j¤p¼gªº 3. eregi_replace ¦P²z, ¤]¤£¤À¦r¥À¤j¤p¼g ÀˬdEmail ---------------- ereg©Ò»Ý°Ñ¼Æ:- "\@" »Ý¥]§t@ "^\@" ¤£±o¥H@¶}ÀY "\@.*.\." ¦b @ ¤Î . ¤§¶¡¥²¶·¦³¤å¦r "\....*" ¦b . ¤§«á¦Ü¤Ö»Ý¦³¨â­Ó¦r¤¸ " " ¤£¤¹³\¦³ªÅ¥Õ¦r¤¸ "<" ">" ¤£¤¹³\¦³¤j,¤p©ó²Å¸¹ Àˬd±b¸¹¬O§_­«ÂÐ ------------------------------ mysql_connect (localhost, username, password); mysql_select_db (dbname); $result = mysql_query ("SELECT * FROM tablename WHERE USER_NAME = '$USER_NAME' "); if ($row = mysql_fetch_array($result)) { print ("Error: The user name "); print ("$USER_NAME"); print (" has been taken. Go back and enter a new user name."); print ("

"); $verify = "bad"; } else { print ("User name: "); print ("$USER_NAME"); } ¨Ï¥ÎCookie¨Ó¿ëÃÑ©M°lÂܯ¸¤Í ------------------------------------------------ ¦bµwºÐ¤¤¥i¥H§ä¨ìcookies.txtªºÀÉ®×, ¨C·í¤@­ÓÂsÄý¾¹¤U¸ü¤@­Óºô­¶®É ´N·|¥ý¤ñ¸ûcookie¤¤ªººô§}, ¦p¦³§ä¨ì«h°e¥X³ocookie¸ê®Æµ¹¸Óºô¯¸ ³]©wcookies ------------------- ¶·¦b¥¼¿é¥X¥ô¦óHTML¤å¥ó¤º®e¤§«e¿é¥X ¤»­Ósetcookieªº°Ñ¼Æ:- 1.¦WºÙ 2.¼Æ­È 3.¹L´Á®É¶¡ 4.¦³®Ä¸ô®| 5.¦³®Äºô§} 6.¦w¥þ­È Cookies¬O­ÓÅÜ¼Æ -------------------------- print $CookieID; ©Î print $HTTP_COOKIE_VARS[CookieID]; ¦b¨Ï¥Î¸ê®Æ®w®É³]©wCookie --------------------------------------------- ¦^¨ì¤§«eªºsubmitform.php3ªº¨Ò¤l ¹ïTABLE°µ¨ÇÅܧó(¼W¥[¤@»¼¼WÄæ¦ì):- ALTER TABLE dbname ADD COLUMN USERID INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT; ¦b¨Ï¥ÎªÌµn¤J¤@µ§¸ê®Æ«á°e¥Xcookie:- ±µ¨ücookie ----------------- Åã¥Ücookie:- °ò¥»À³¥Î:- ©Ç²§ªºSQL ----------------- µ²§Àªº¤À¸¹ ---------- ¦bPHPªºQuery String¤¤¤£»Ý­n¥[³Ì«áªº¤À¸¹(;) TEXT,DATE©MSET¸ê®Æ«¬ºA ---------------------- ¤é´Á®æ¦¡¬° YYYY-MM-DD, e.g., 1999-12-08. ­Y¥HPHPªº§Î¦¡²£¥Í«h¥i¥Î date("Y-m-d"); µù: MySQL¤¤¥i¥Îcurdate()©Înow()µ¥¤º«Ø¨ç¦¡ ¸Ó¤é´Á¬O¥i¥H®³¨Ó°µ¦UºØ¹Bºâ: $age = ($current_date - $birthdate); SET¬O«Ü¦³¥Îªº¸ê®Æ«¬ºA, »PENUMÃþ¦ü, ¦ý¬O¥i¥H¦P®É¦s¦h­Ó¸ê®Æ SET³Ì¦h¥i³]©w64­Ó­È; ¦ÓENUM«h¬°65,535­Ó¹w³]­È ¦pªG»Ý­n¶W¹L64­Ó¹w³]­È«h¥i¦h³]¦¹ºØÄæ¦ì ¸U¥Î¦r¤¸ -------- SQL¦³®É·|¥Î ¬P¸¹(*) ¦Ó¦³®É«h¥Î ¤Ú¥P(%) ¬°¸U¥Î¦r¤¸ SELECT * FROM dbname WHERE USER_ID LIKE '%'; ¦Ó % ¥u¥Î©M LIKE¤@°_¨Ï¥Î, ¤£¥i¥H©M = ¤@°_¥Î ¥t¤@­Ó¸U¥Î¦r¤¸¬O ©³½u(_),·N«ä¬O"¥ô·N³æ¤@¦r¤¸" NOT NULL©MªÅ°O¿ý ---------------- ·í¥²¶ñªº¸ê®Æ¨S¶ñ¤J®É·|µo¥Í¤°»ò¨Æ©O? §A¥i¥H¼g¤@­ÓÅçÃÒªº¤pµ{¦¡¥h§PÂ_©Ò»ÝÄæ¦ìªº­È ¦Ü©ó¦³¨ÇÄæ¦ì¬O¤¹³\³QªÅµÛ¤£¶ñªº, MySQL±N·|¦³¥H¤U¤ÏÀ³: 1.¶ñ¤JNULL­È,³o¬O¹w³]°Ê§@ 2.¦pªG¬YÄæ¦ì³Q«Å§i¬°NOT NULL®É, MySQL±N¤£¼g¤J¸Ó°O¿ý(ªÅ­È) 3.¦bENUMªºÄæ¦ì, ¦pªG«Å§i¬°NOT NULL«h¦Û¶ñ¤J²Ä¤@­Ó¹w³]­È, §A¥i¥H§â²Ä¤@­Ó¹w³]­È ³]¬° '' (Âù³æ¤Þ¸¹), ·N§YªÅ­È NOT NULL©MªÅ°O¿ýªº®t§O¦b©ó % ¸U¥Î¦r¤¸¥u§äªÅ­È, ¤£§äNULL­È if (!$CITY) {$CITY = "%";} $selectresult = mysql_query ("SELECT * FROM dbname WHERE FIRST_NAME = 'Bob' AND LAST_NAME = 'Smith' AND CITY LIKE '$CITY' "); ¦pªG $CITY ¬OªÅ­È©Î % ªº¸Ü, «h¥H¤W·|¿é¥X©Ò¦³city¤¤§t¦³­È©Î¯u­Èªº Bob Smith ¸ê®Æ, ¦ý¤£·|¿é¥X city ¬°NULL­Èªº Bob Smith ¸ê®Æ ­n¸Ñ¨M¥H¤W°ÝÃD¥i±NQeury§ï¬°: if (!$CITY) {$CITY = "%";} $selectresult = mysql_query ("SELECT * FROM dbname WHERE FIRST_NAME = 'Bob' AND LAST_NAME = 'Smith' AND (CITY LIKE '$CITY' OR CITY IS NULL) "); ­n§ä¨ìNULL¥²¶·¥Î = ¦Ó¤£¥i¥H¨Ï¥Î like ¦ý¦pªG¨Ï¥ÎªÌ¿é¤J "Altoona" ªº city, «h·|±N©Ò¦³¦b Altoona ªº Bob Smith, ¤Îcity­È ¬°NULLªºBob Smith³£¿é¥X, ³o¨Ã¤£¬O¤@¯ë©Ò´Á±æªº¿é¥X, ©Ò¥H«ØÄ³§â©Ò¦³Äæ¦ì³£³]¦ NOT NULL¥HÁ×§K³oºØ°ÝÃD Checkboxes ¤Î¨ä¥LHTMLªí®æ¤§³B²z ------------------------------- What pets do you have?

Dog
Cat
Fish
³o¸Ì§Ú­Ì¬O¨Ï¥Î PET_ARRAY[], ¦b¨Ï¥ÎªÌ«ö¤U´£¥æ(SUBMIT)®É, ³oÅܼƱN·|¦bHEADER ¤¤¥H PET_ARRAY%5B%5D=dog&PET_ARRAY%5B%5D=cat §e²{ ¨ä¤¤ %5B ªí¥Ü [ , %5D ªí¥Ü ] HTML¤¤©w¸q¤è¬A¬° [ ¤Î ] ¦b±µ¦¬³o­ÓÅܼƪºPHP§Ú­Ì°µ¥H¤U³B²z, ¨ä¤¤PET¬°¤@SET¸ê®Æ«¬ºAªºÄæ¦ì: if ($PET_ARRAY){ $PET = implode($PET_ARRAY, ","); $result = mysql_query ("UPDATE dbname SET PET = '$PET' "); if(!$result) { echo "UPDATE unsuccessful: ", mysql_error(); exit; } } »yªk if ($PET_ARRAY) §PÂ_¬O§_¦³¿ï¶µ³QÂI¿ï, §_«h¶Ç¦^«D­È $PET = implode($PET_ARRAY, ","); ±N°}¦CÂন¦r¦êÅܼÆ, ¥H³rÂI¹j¶}, ¥H¤W­z HEADER¬°¨Ò«h·|¶Ç¦^ dog,cat ªº­Èµ¹ $PET ¦b·j´M¸ÓÄæ¦ì®É°O±o­n¦b·j´M¦r¦ê«e«á¦P®É¥[¤W % , ³o¬O¬°§ä¨ì¥H¤W¿ï¶µ¤¤ªº­È ©Ò¥²­nªº¨BÆJ, ¦]¬°­n¦Ò¼{¨ì«e«á¦³©ÎµL³rÂIªº²Õ¦XÃö«Y: SELECT * FROM dbname WHERE PET LIKE '%$PET%'; SELECTªº¦h¶µ¦¡¿ï³æ ------------------ What pets do you have?
§@ªÌı±o¦h¶µ¿ï¾ÜÁÙ¬O¨Ï¥Î Checkbox ¤ñ¸û²z·Q, ¦]¬°¦h¼Æ¨Ï¥ÎªÌ¨Ã¤£ª¾¹D¨Ï¥Î SELECT ¥i¥H½Æ¿ï µù: §@ªÌ¥»¨­¥u·|¥Î Shift-Click ¨Ó¿ï¾Ü¤@­Ó°Ï¶¡ªº¿ï¶µ, ¤£·|¥Î Ctrl-Click ¨Ó¿ï¨ú¥ô·N¸ê®Æ ¦h¶µ·j´M -------- °²³]­n·j¯Á ¤@¶µ¦³ dog ¤S cat ªº SET Äæ¦ì, §@ªÌÁÙ¨S·Q¨ì­n¦p¦ó°µ, ¦pªG·Q¨ì «á¨Ó¦A¸É¤W µù: ¬O¤Ó²Ö¤FÁÙ¬O¯uªº¤£«ç»ò³ßÅw¥Î¸£? ¤£¹L§@ªÌ¹ï¼¶¤åªº¥Î¤ß¬OµL±e¸mºÃªº ¨Ï¥Î include() ¨Ó¤Þ¶i¥~³¡ÀÉ®× ----------------------------- ¹J¨ì­«½Æ©Ê«Ü°ªªº¬q©Î¤å¦r®É¥i¥Î include ¨Ó¤Þ¶i¥~³¡ÀÉ®×, ¥u­n­×§ï¸ÓÀÉ®× «h©Ò¦³ªº­¶­±§Y¥i¥Í®Ä ¤å¦r¦¡ ------ ¦s¦¨ textblock.php3 ¦b»Ý­nªººô­¶¤¤ include ('textblock.php3'); Applet ------ ¤Þ¶i¨ä¥LÃþ«¬ªºÀÉ®×, §@ªÌ¨S¸Õ¹L ª«¥ó ---- HTML¤¤ªº¤]¬O¥t¤@ºØ¤Þ¶i¥~³¡Àɮתº¤è¦¡, ±M¬° applets¦Ó³Ð, ¨Ò¦p Java¤Î Microsoft's ActiveX, ¦ýÀ³¸Ó¤]¥i¥H¹ï¨ä¥LÃþ«¬ªºÀɮץͮÄ, ¦ý§@ªÌ¤]ÁÙ¨S¸Õ¥X¨Ó