×÷Õß: lavecgn
2012-01-18 09:26:03
¡¡¡¡À´Ô´:cnw
¡¡¡¡Êý¾Ý¿âÊÇWeb´ó¶àÊýÓ¦Óÿª·¢µÄ»ù´¡¡£Èç¹ûÄãÊÇÓÃPHP£¬ÄÇô´ó¶àÊý¾Ý¿âÓõÄÊÇMySQLÒ²ÊÇLAMP¼Ü¹¹µÄÖØÒª²¿·Ö¡£PHP¿´ÆðÀ´ºÜ¼òµ¥£¬Ò»¸ö³õѧÕßÒ²¿ÉÒÔ¼¸¸öСʱÄÚ¾ÍÄÜ¿ªÊ¼Ð´º¯ÊýÁË¡£µ«Êǽ¨Á¢Ò»¸öÎȶ¨¡¢¿É¿¿µÄÊý¾Ý¿âÈ·ÐèҪʱ¼äºÍ¾Ñé¡£ÏÂÃæ¾ÍÊÇһЩÕâÑùµÄ¾Ñ飬²»½ö½öÊÇMYSQL£¬ÆäËûÊý¾Ý¿âÒ²Ò»Ñù¿ÉÒԲο¼¡£
¡¡¡¡1.ʹÓÃMyISAM¶ø²»ÊÇInnoDB
¡¡¡¡MySQLÓкܶàµÄÊý¾Ý¿âÒýÇ棬µ¥Ò»°ãÒ²¾ÍÓÃMyISAMºÍInnoDB¡£
¡¡¡¡MyISAM ÊÇĬÈÏʹÓõġ£µ«Êdzý·ÇÄãÊǽ¨Á¢Ò»¸ö·Ç³£¼òµ¥µÄÊý¾Ý¿â»òÕßÖ»ÊÇʵÑéÐԵģ¬ÄÇôµ½´ó¶àÊýʱºòÕâ¸öÑ¡ÔñÊÇ´íÎóµÄ¡£MyISAM²»Ö§³ÖÍâ¼üµÄÔ¼Êø£¬ÕâÊDZ£Ö¤Êý¾ÝÍêÕûÐԵľ«»ªËùÔÚ°¡¡£ÁíÍ⣬MyISAM»áÔÚÌí¼Ó»òÕ߸üÐÂÊý¾ÝµÄʱºò½«Õû¸ö±íËøס£¬ÕâÔÚÒÔºóµÄÀ©Õ¹ÐÔÄÜÉÏ»áÓкܴóµÄÎÊÌâ¡£
¡¡¡¡½â¾ö°ì·¨ºÜ¼òµ¥£ºÊ¹ÓÃInnoDB¡£
¡¡¡¡2.ʹÓÃPHPµÄmysql·½·¨
¡¡¡¡PHP´ÓÒ»¿ªÊ¼¾ÍÌṩÁËMySQLµÄº¯Êý¿â¡£ºÜ¶à³ÌÐò¶¼ÒÀÀµÓÚmysql_connect¡¢mysql_query¡¢mysql_fetch_assocµÈµÈ£¬µ«ÊÇPHPÊÖ²áÖн¨Ò飺
¡¡¡¡Èç¹ûÄãʹÓõÄMySQL°æ±¾ÔÚ4.1.3Ö®ºó£¬ÄÇôǿÁÒ½¨ÒéʹÓÃmysqliÀ©Õ¹¡£
¡¡¡¡mysqli£¬»òÕß˵MySQLµÄ¸ß¼¶À©Õ¹£¬ÓÐһЩÓŵ㣺
¡¡¡¡ÓÐÃæÏò¶ÔÏóµÄ½Ó¿Ú
¡¡¡¡prepared statements(Ô¤´¦ÀíÓï¾ä£¬¿ÉÒÔÓÐЧ·ÀÖ¹SQL-×¢Èë¹¥»÷£¬»¹ÄÜÌá¸ßÐÔÄÜ)
¡¡¡¡Ö§³Ö¶àÖÖÓï¾äºÍÊÂÎñ
¡¡¡¡ÁíÍ⣬Èç¹ûÄãÏëÖ§³Ö¶àÊý¾Ý¿âÄÇôӦ¸Ã¿¼ÂÇÒ»ÏÂPDO¡£
¡¡¡¡3.²»¹ýÂËÓû§ÊäÈë
¡¡¡¡Ó¦¸ÃÊÇ£ºÓÀÔ¶±ðÏàÐÅÓû§µÄÊäÈë¡£Óúó¶ËµÄPHPÀ´Ð£Ñé¹ýÂËÿһÌõÊäÈëµÄÐÅÏ¢£¬²»ÒªÏàÐÅJavascript¡£ÏñÏÂÃæÕâÑùµÄSQLÓï¾äºÜÈÝÒ׾ͻᱻ¹¥»÷£º
¡¡¡¡$username = $_POST["name"];
¡¡¡¡$password = $_POST["password"];
¡¡¡¡$sql = "SELECT userid FROM usertable WHERE username=?$username?AND password=?$password?;"; // run query...
¡¡¡¡ÕâÑùµÄ´úÂ룬Èç¹ûÓû§ÊäÈ롱admin¡¯;¡±ÄÇô£¬¾ÍÏ൱ÓÚÏÂÃæÕâÌõÁË£º
¡¡¡¡SELECT userid FROM usertable WHERE username=?admin?;
¡¡¡¡ÕâÑù¾ÍÄܲ»ÊäÈëÃÜÂ룬¾Íͨ¹ýadminÉí·ÝµÇ¼ÁË¡£
¡¡¡¡4.²»Ê¹ÓÃUTF-8
¡¡¡¡ÄÇЩӢÃÀ¹ú¼ÒµÄÓû§£¬ºÜÉÙ¿¼ÂÇÓïÑÔµÄÎÊÌ⣬ÕâÑù¾ÍÔì³ÉºÜ¶à²úÆ·¾Í²»ÄÜÔÚÆäËûµØ·½Í¨Ó᣻¹ÓÐһЩGBK±àÂëµÄ£¬Ò²»áÓкܶàµÄÂé·³¡£
¡¡¡¡UTF-8½â¾öÁ˺ܶà¹ú¼Ê»¯µÄÎÊÌâ¡£ËäÈ»PHP6²ÅÄܱȽÏÍêÃÀµÄ½â¾öÕâ¸öÎÊÌ⣬µ«ÊÇÒ²²»·Á°Ä㽫MySQLµÄ×Ö·û¼¯ÉèÖÃΪUTF-8¡£
¡¡¡¡5.¸ÃÓÃSQLµÄµØ·½Ê¹ÓÃPHP
¡¡¡¡Èç¹ûÄã¸Õ½Ó´¥MySQL£¬ÓÐʱºò½â¾öÎÊÌâµÄʱºò¿ÉÄÜ»áÏÈ¿¼ÂÇʹÓÃÄãÊìϤµÄÓïÑÔÀ´½â¾ö¡£ÕâÑù¾Í¿ÉÄÜÔì³ÉһЩÀ˷ѺÍÐÔÄܱȽϲîµÄÇé¿ö¡£±ÈÈ磺¼ÆËãƽ¾ùÖµµÄʱºò²»ÊÊÓÃMySQLÔÉúµÄAVG()·½·¨£¬¶øÊÇÓÃPHP½«ËùÓÐֵѻ·Ò»±éÈ»ºóÀÛ¼Ó¼ÆËãƽ¾ùÖµ¡£
¡¡¡¡ÁíÍ⻹ҪעÒâSQL²éѯÖеÄPHPÑ»·¡£Í¨³££¬ÔÚÈ¡µÃËùÓнá¹ûÖ®ºóÔÙÓÃPHPÀ´Ñ»·µÄЧÂʸü¸ß¡£
¡¡¡¡Ò»°ãÔÚ´¦Àí´óÁ¿Êý¾ÝµÄʱºòʹÓÃÇ¿ÓÐÁ¦µÄÊý¾Ý¿â·½·¨£¬¸üÄÜÌá¸ßЧÂÊ¡£
¡¡¡¡6.²»ÓÅ»¯²éѯ
¡¡¡¡99%µÄPHPÐÔÄÜÎÊÌⶼÊÇÊý¾Ý¿âÔì³ÉµÄ£¬Ò»ÌõÔã¸âµÄSQLÓï¾ä¿ÉÄÜÈÃÄãµÄÕû¸ö³ÌÐò¶¼·Ç³£Âý¡£MySQLµÄEXPLAIN statement£¬Query Profiler£¬many other toolsµÄÕâЩ¹¤¾ß¿ÉÒÔ°ïÄãÕÒ³öÄÇЩµ÷ƤµÄSELECT¡£
¡¡¡¡7.ʹÓôíÎóµÄÊý¾ÝÀàÐÍ
¡¡¡¡MySQLÌṩһϵÁÐÊý×Ö¡¢×Ö·û´®¡¢Ê±¼äµÈµÄÊý¾ÝÀàÐÍ¡£Èç¹ûÄãÏë´æ´¢ÈÕÆÚ£¬ÄÇô¾ÍÊÇÓÃDATE»òÕßDATETIMEÀàÐÍ£¬Ê¹ÓÃÕûÐλòÕß×Ö·û´®»áÈÃÊÂÇé¸ü¼Ó¸´ÔÓ¡£
¡¡¡¡ÓÐʱºòÄãÏëÓÃ×Ô¼º¶¨ÒåµÄÊý¾ÝÀàÐÍ£¬ÀýÈ磬ʹÓÃ×Ö·û´®´æ´¢ÐòÁл¯µÄPHP¶ÔÏó¡£Êý¾Ý¿âµÄÌí¼Ó¿ÉÄܺÜÈÝÒ×£¬µ«ÊÇÕâÑùµÄ»°£¬MySQL¾Í»á±äµÃºÜ±¿ÖØ£¬¶øÇÒÒÔºó¿ÉÄܵ¼ÖÂһЩÎÊÌâ¡£
¡¡¡¡8.ÔÚSELECT²éѯÖÐʹÓÃ*
¡¡¡¡²»ÒªÊ¹ÓÃ*ÔÚ±íÖзµ»ØËùÓеÄ×ֶΣ¬Õâ»á·Ç³£µÄÂý¡£ÄãÖ»ÐèҪȡ³öÄãÐèÒªµÄÊý¾Ý×ֶΡ£Èç¹ûÄãÐèҪȡ³öËùÓеÄ×ֶΣ¬ÄÇô¿ÉÄÜÄãµÄ±íÐèÒª¸ü¸ÄÁË¡£
¡¡¡¡9.Ë÷Òý²»×ã»òÕß¹ý¶ÈË÷Òý
¡¡¡¡Ò»°ãÀ´Ëµ£¬Ó¦¸ÃË÷Òý³öÏÖÔÚSELECTÓï¾äÖÐWHEREºóÃæËùÓеÄ×ֶΡ£
¡¡¡¡ÀýÈ磬¼ÙÈçÎÒÃǵÄÓû§±íÓÐÒ»¸öÊý×ÖµÄID(Ö÷¼ü)ºÍemailµØÖ·¡£µÇ¼֮ºó£¬MySQLÓ¦¸Ãͨ¹ýemailÕÒµ½ÏàÓ¦µÄID¡£Í¨¹ýË÷Òý£¬MySQL¿ÉÒÔͨ¹ýËÑË÷Ëã·¨ºÜ¿ìµÄ¶¨Î»email¡£Èç¹ûûÓÐË÷Òý£¬MySQL¾ÍÐèÒª¼ì²éÿһÏî¼Ç¼ֱµ½ÕÒµ½¡£
¡¡¡¡ÕâÑùµÄ»°£¬Äã¿ÉÄÜÏë¸øÿһ¸ö×ֶζ¼Ìí¼ÓË÷Òý£¬µ«ÊÇÕâÑù×öµÄºó¹û¾ÍÊÇÔÚÄã¸üлòÕßÌí¼ÓµÄʱºò£¬Ë÷Òý¾Í»áÖØÐÂ×öÒ»±é£¬µ±Êý¾ÝÁ¿´óµÄʱºò£¬¾Í»áÓÐÐÔÄÜÎÊÌâ¡£ËùÒÔ£¬Ö»ÔÚÐèÒªµÄ×Ö¶Î×öË÷Òý¡£
¡¡¡¡10.²»±¸·Ý
¡¡¡¡Ò²Ðí²»³£·¢Éú£¬µ«ÊÇÊý¾Ý¿âËð»Ù£¬Ó²ÅÌ»µÁË¡¢·þÎñÍ£Ö¹µÈµÈ£¬ÕâЩ¶¼»á¶ÔÊý¾ÝÔì³ÉÔÖÄÑÐÔµÄÆÆ»µ¡£ËùÒÔÄãÒ»¶¨ÒªÈ·±£×Ô¶¯±¸·ÝÊý¾Ý»òÕß±£´æ¸±±¾¡£
¡¡¡¡11.ÁíÍ⣺²»¿¼ÂÇÆäËûÊý¾Ý¿â
¡¡¡¡MySQL¿ÉÄÜÊÇPHPÓõÄ×î¶àµÄÊý¾Ý¿âÁË£¬µ«ÊÇÒ²²»ÊÇΨһµÄÑ¡Ôñ¡£ PostgreSQLºÍFirebirdÒ²ÊǾºÕùÕߣ¬ËûÃǶ¼¿ªÔ´£¬¶øÇÒ²»±»Ä³Ð©¹«Ë¾Ëù¿ØÖÆ¡£Î¢ÈíÌṩSQL Server Express£¬OracleÓÐ10g Express£¬ÕâЩÆóÒµ¼¶µÄÒ²ÓÐÃâ·Ñ°æ¡£SQLite¶ÔÓÚһЩСÐ͵ĻòÕßǶÈëʽӦÓÃÀ´ËµÒ²ÊDz»´íµÄÑ¡Ôñ¡£