PHP 在LIKE查询中阻止sql注入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 在LIKE查询中阻止sql注入相关的知识,希望对你有一定的参考价值。

<?php
function escapeLike($mysql, $data)
{
	if(is_int($data) || is_float($data)) return $data;
	
	$escaped = $mysql->real_escape_string($data);
	$find = array('%' => '\\%', '_' => '\\_');
	return strtr($escaped, $find);
}

//Usage

$dangerous_input = '%My Name';

//$mysql has to be either an instance of mysql or mysqli
$query = "SELECT * FROM tbl WHERE field LIKE '" . escapeLike($mysql, $dangerous_input) . "%'";
echo $query; //Echoes: SELECT * FROM tbl WHERE field LIKE '\%My Name%'
?>

以上是关于PHP 在LIKE查询中阻止sql注入的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 注入中使用 LIKE 构建查询是不是安全?

MyBatis单表查询——参数占位符${}和#{}SQL注入like查询

为啥使用参数化查询或实体框架会阻止 sql 注入?

Bitninja 是不是有 sql 注入误报?

pg数据库like防止sql注入

防止JPQL查询sql注入