̽ÌÖPHP SQL×¢ÈëµÄ½â¾ö˼·
˼·:SQLÀᄀ¿ÉÄܵIJÉÓÃÁ½¸öÒýºÅ±ÕºÏ±äÁ¿;¶Ô±äÁ¿ÖеÄÒýºÅתÒå;¶Ô²»ÄܲÉÓÃ2¸öÒýºÅ±ÕºÏµÄ±äÁ¿,ÏÈÔ¤ÏÈÅжϱäÁ¿ÀàÐÍ;
·½°¸:
1 ËùÓзÇÊýÖµÔËËã(Èç×Ö·û,¼òµ¥ÊýÖµÐ͵ȵÈ)µÄSQL±äÁ¿¶¼¼ÓÒýºÅ;
2 ËùÓзÇÊýÖµÔËËãµÄSQL±äÁ¿µÄÖµ¶¼²ÉÓÃmagic_quotes_gpc»òÕßaddslashesתÒå;
3 ¶ÔÐèÒªÊýÖµÔËËãµÄ±äÁ¿ºÍÆäËû²»ÄܼÓÒýºÅµÄSQL(ÈçINÓï¾ä),Ô¤ÏÈÅжϱäÁ¿ÀàÐÍ.
4 ¹Ø±Õphp.iniµÄdisply_error.(¿ÉÑ¡,Èç²»ÄܹرÕ,Ðè×Ô¼ºÊÖ¶¯ÈÃSQLÓï¾ä²»ÄÜÖ´Ðб¨´í)
php5ժ¼
Ô¤·À´ëÊ©
Ò²ÐíÓÐÈË»á×ÔÎÒ°²Î¿£¬Ëµ¹¥»÷ÕßÒªÖªµÀÊý¾Ý¿â½á¹¹µÄÐÅÏ¢²ÅÄÜʵʩÉÏÃæµÄ¹¥»÷¡£Ã»´í£¬È·ÊµÈç´Ë¡£µ«Ã»ÈËÄܱ£Ö¤¹¥»÷ÕßÒ»¶¨µÃ²»µ½ÕâЩÐÅÏ¢£¬Ò»µ«ËûÃǵõ½ÁË£¬Êý¾Ý¿âÓÐй¶µÄΣÏÕ¡£Èç¹ûÄãÔÚÓÿª·ÅÔ´´úÂëµÄÈí¼þ°üÀ´·ÃÎÊÊý¾Ý¿â£¬±ÈÈçÂÛ̳³ÌÐò£¬¹¥»÷Õ߾ͺÜÈݵõ½µ½Ïà¹ØµÄ´úÂë¡£Èç¹ûÕâЩ´úÂëÉè¼Æ²»Á¼µÄ»°£¬·çÏվ͸ü´óÁË¡£
ÕâЩ¹¥»÷×ÜÊǽ¨Á¢ÔÚ·¢¾ò°²È«Òâʶ²»Ç¿µÄ´úÂëÉϵġ£ËùÒÔ£¬ÓÀÔ¶²»ÒªÐÅÈÎÍâ½çÊäÈëµÄÊý¾Ý£¬ÌرðÊÇÀ´×ÔÓÚ¿Í»§¶ËµÄ£¬°üÀ¨Ñ¡Ôñ¿ò¡¢±íµ¥Òþ²ØÓòºÍ cookie¡£¾ÍÈçÉÏÃæµÄµÚÒ»¸öÀý×ÓÄÇÑù£¬¾ÍËãÊÇÕý³£µÄ²éѯҲÓпÉÄÜÔì³ÉÔÖÄÑ¡£
ÓÀÔ¶²»ÒªÊ¹Ó󬼶Óû§»òËùÓÐÕßÕʺÅÈ¥Á¬½ÓÊý¾Ý¿â¡£ÒªÓÃȨÏÞ±»ÑϸñÏÞÖÆµÄÕʺš£
¼ì²éÊäÈëµÄÊý¾ÝÊÇ·ñ¾ßÓÐËùÆÚÍûµÄÊý¾Ý¸ñʽ¡£PHP Óкܶà¿ÉÒÔÓÃÓÚ¼ì²éÊäÈëµÄº¯Êý£¬´Ó¼òµ¥µÄ±äÁ¿º¯ÊýºÍ×Ö·ûÀàÐͺ¯Êý£¨±ÈÈç is_numeric()£¬ctype_digit()£©µ½¸´Ô Perl ¼æÈÝÕýÔò±í´ïʽº¯Êý¶¼¿ÉÒÔÍê³ÉÕâ¸ö¹¤×÷¡£
Èç¹û³ÌÐòµÈ´ýÊäÈëÒ»¸öÊý×Ö£¬¿ÉÒÔ¿¼ÂÇʹÓà is_numeric() À´¼ì²é£¬»òÕßÖ±½ÓʹÓà settype() À´×ª»»ËüµÄÀàÐÍ£¬Ò²¿ÉÒÔÓà sprintf() °ÑËü¸ñʽ»¯ÎªÊý×Ö¡£
Àý 27-6. Ò»¸öʵÏÖ·ÖÒ³¸ü°²È«µÄ·½·¨
<?php
settype($offset, 'integer');
$query = "SELECT id, name from products ORDER BY name LIMIT 20 OFFSET $offset;";
// Çë×¢Òâ¸ñʽ×Ö·û´®ÖÐµÄ %d£¬Èç¹ûÓà %s ¾ÍºÁÎÞÒâÒåÁË
$query = sprintf("SELECT id, name from products ORDER BY name LIMIT 20 OFFSET %d;",
$offset);
?>
ʹÓÃÊý¾Ý¿âÌØ¶¨µÄÃô¸Ð×Ö·ûתÒ庯Êý£¨±ÈÈç mysql_escape_string() ºÍ sql_escape_string()£©°ÑÓû§Ìá½»ÉÏÀ´µÄ·ÇÊý×ÖÊý¾Ý½øÐÐתÒå¡£Èç¹ûÊý¾Ý¿âûÓÐרÃŵÄÃô¸Ð×Ö·ûתÒ
Ïà¹ØÎĵµ£º
1.phpÖеÄ__FILE__³£Á¿·µ»ØÎļþµÄÍêÕû·¾¶ºÍÎļþÃû.
2.dirname(__FILE___) º¯Êý·µ»ØµÄÊǽű¾ËùÔÚÔڵķ¾¶¡£
±ÈÈçÎļþ b.php °üº¬ÈçÏÂÄÚÈÝ£º
<?php
$basedir = dirname(__FILE__);
?>
Èç¹ûb.php±»ÆäËûĿ¼ÀïµÄa.phpÎļþrequire »òÕß include È¥ÒýÓõϰ¡£
±äÁ¿?$basedir µÄÄÚÈÝ»¹ÊÇb.phpËùÔÚµÄÄǸöÎļþ¼Ð ......
ÎÒÔÚmy.cnfÖÐ×¢Ê͵ôlog-bin=mysql-binºÍbinlog_format=mixedºó,ÎÞ·¨Æô¶¯mysql
ÎÒÖØÆôvpsºó,ÄÜÆô¶¯mysqlÀ²
ÓÃweb·½Ê½ÔËÐÐphp,Õý³£
µ«ÊÇÔÚcrontabÀïÖ´ÐеÄphp½Å±¾,Ìáʾ: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) ²é¿´µ½/var/lib/mysql/Ŀ¼ÏÂ,ÓÐÒ»¸ömysql.s ......
¿ÉÀ©Õ¹ÐԸĽø¡¡¡¡½èÖúÓÚÐÂÓ²¼þÉ豸¶ÔÓÚÆóÒµ°æWindows Server 2008 R2µÄÔöÇ¿£¬SQL Server2008R2½«ÄÜÖ§³Ö¸ß´ï56¸öÂß¼´¦ÀíÆ÷ºÍ2TBÄÚ´æ¡£ÕâЩ¹¦ÄܵÄÔöÇ¿½«Ê¹µÃÆóÒµÄÜ´¦Àí¸ü¼Ó¾Þ´óµÄ¸ºÔØÁ¿£¬²¢ÄÜÔö¼Ó¿ÉÒÔͳһµ½Ò»¸öƽ̨ÉϵķþÎñÆ÷£¬ÊµÀýºÍÊý¾Ý¿âµÄÊýÁ¿¡£
¡¡¡¡ÕûºÏ¹¤¾ß
¡¡¡¡¶ÔÓÚSQLServer2008» ......
Á¬½Ó²éѯ
¡¡¡¡Í¨¹ýÁ¬½ÓÔËËã·û¿ÉÒÔʵÏÖ¶à¸ö±í²éѯ¡£Á¬½ÓÊǹØÏµÊý¾Ý¿âÄ£Ð͵ÄÖ÷ÒªÌØµã£¬Ò²ÊÇËüÇø±ðÓÚÆäËüÀàÐÍÊý¾Ý¿â¹ÜÀíϵͳµÄÒ»¸ö±êÖ¾¡£
¡¡¡¡ÔÚ¹ØÏµÊý¾Ý¿â¹ÜÀíϵͳÖУ¬±í½¨Á¢Ê±¸÷Êý¾ÝÖ®¼äµÄ¹ØÏµ²»±ØÈ·¶¨£¬³£°ÑÒ»¸öʵÌåµÄËùÓÐÐÅÏ¢´æ·ÅÔÚÒ»¸ö±íÖС£µ±¼ìË÷Êý¾Ýʱ£¬Í¨¹ýÁ¬½Ó²Ù×÷²éѯ³ö´æ·ÅÔÚ¶à¸ö±íÖеIJ»Í¬ÊµÌåµÄ ......