mysql 替代find_in_set的方法 注入的是字段
时间: 2023-09-21 09:10:54 浏览: 55
如果你需要在 MySQL 中替代 `find_in_set` 函数,并且需要进行防注入,可以使用 `FIND_IN_SET` 函数和参数绑定。具体实现可以参考以下示例:
假设你需要查询 `column1` 中是否包含输入的字符串,可以使用以下 SQL 语句:
```
SELECT * FROM table WHERE FIND_IN_SET(?, column1) > 0;
```
然后在代码中使用参数绑定的方式传递输入的字符串,例如在 PHP 中可以这样写:
```
$pdo = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password');
$stmt = $pdo->prepare('SELECT * FROM table WHERE FIND_IN_SET(?, column1) > 0');
$stmt->execute(array($_POST['string']));
```
这样就可以避免 SQL 注入问题。
相关问题
mysql 替换FIND_IN_SET的方法
如果你想要替换 MySQL 中的 FIND_IN_SET 函数,可以尝试使用以下方法:
1. 使用 LIKE 操作符
可以使用 LIKE 操作符来模拟 FIND_IN_SET 函数。例如,假设你要查找包含 "2" 的值:
SELECT * FROM table WHERE CONCAT(',', field, ',') LIKE '%,2,%';
这里的 CONCAT 函数将字段值与逗号拼接起来,以便在字符串中查找指定的值。请注意,这种方法可能会影响性能,特别是当你有大量数据时。
2. 使用正则表达式
如果你的 MySQL 版本支持正则表达式,可以使用 REGEXP 操作符来查找包含指定值的字段。例如,假设你要查找包含 "2" 的值:
SELECT * FROM table WHERE field REGEXP '[[:<:]]2[[:>:]]';
这里的 REGEXP 操作符使用正则表达式来匹配字段值,确保它包含指定的值。请注意,这种方法也可能影响性能。
3. 使用 FIND_IN_SET 函数的用户定义函数 (UDF)
MySQL 中允许创建用户定义函数 (UDF),因此你可以编写自己的 FIND_IN_SET 函数。你可以使用 C 或 C++ 等语言编写一个 UDF,然后通过 MySQL 安装它。这种方式需要一些编程知识,但它可以提高性能并提供更好的可重用性。
这些方法都可以替换 MySQL 中的 FIND_IN_SET 函数。你可以根据你的需求选择最适合你的方法。
mysql 中FIND_IN_SET
find_in_set函数是MySQL中的一个字符串函数,用于在一个逗号分隔的字符串列表中查找一个指定的字符串,并返回其在列表中的位置。例如,find_in_set('a', 'a,b,c,d')将返回1,因为字符串'a'在列表中的第一个位置。
在实际应用中,find_in_set函数通常用于查询某个字段中是否包含指定的值。例如,可以使用以下语句查询包含'apple'的记录:
SELECT * FROM fruits WHERE find_in_set('apple', fruits_list) > ;
其中,fruits_list是一个逗号分隔的字符串列表,包含了所有水果的名称。如果某个记录的fruits_list字段中包含了'apple',则该记录将被返回。
需要注意的是,find_in_set函数只能用于逗号分隔的字符串列表,如果列表中使用了其他分隔符,该函数将无法正常工作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)