Home > Article > Backend Development > How to prevent SQL injection in PHP+Mysql
The content of this article is about the method of preventing SQL injection in PHP Mysql. It has a certain reference value. Now I share it with you. Friends in need can refer to
Related mysql video tutorial recommendations: " mysql tutorial》
Method 1:
mysql_real_escape_string -- Escape special characters in the string used in the SQL statement, taking into account the current connection character set!$sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_real_escape_string($pw)."' limit 1";
Method 2:
Open magic_quotes_gpc to prevent SQL injection. There is a setting in php.ini: magic_quotes_gpc = Off. This is turned off by default. If it is turned on, it will automatically convert the SQL query submitted by the user, such as converting ' to \', etc., which plays a significant role in preventing SQL injection.
If magic_quotes_gpc=Off, use the addslashes() function.
Method 3:
Custom function
/** * 防止sql注入自定义方法一 * author: xiaochuan * @param: mixed $value 参数值 */ function check_param($value=null) { # select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile $str = 'select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile'; if(!$value) { exit('没有参数!'); }elseif(eregi($str, $value)) { exit('参数非法!'); } return true; } /** * 防止sql注入自定义方法二 * author: xiaochuan * @param: mixed $value 参数值 */ function str_check( $value ) { if(!get_magic_quotes_gpc()) { // 进行过滤 $value = addslashes($value); } $value = str_replace("_", "\_", $value); $value = str_replace("%", "\%", $value); return $value; } /** * 防止sql注入自定义方法三 * author: xiaochuan * @param: mixed $value 参数值 */ function post_check($value) { if(!get_magic_quotes_gpc()) { // 进行过滤 $value = addslashes($value); } $value = str_replace("_", "\_", $value); $value = str_replace("%", "\%", $value); $value = nl2br($value); $value = htmlspecialchars($value); return $value; }
The above is the detailed content of How to prevent SQL injection in PHP+Mysql. For more information, please follow other related articles on the PHP Chinese website!