php - 选择带撇号的框数据未在数据库中提交
问题描述
如果我在我的 POST 请求中输入acesr'ss
,categoryname
它只会插入acesr
到我的数据库中。我不知道为什么。
相关代码片段:
$cate_name=mysqli_real_escape_string($conn,$_POST['categoryname']);
$usersql="Insert INTO abc(category_name) VALUES('".$cate_name."')";
我也试过addslashes
,但遇到同样的问题。
解决方案
您可以尝试使用参数化的 sql 查询插入吗?这将防止 sql 注入
$dmessage = html_entity_decode ($cate_name, ENT_QUOTES | ENT_XML1, 'UTF-8') ;
$createSql = $db->prepare(" INSERT INTO abc(category_name) VALUES(:cate_name)" );
$createSql->execute(array(
":cate_name" => trim($cate_name)
));
推荐阅读
- node.js - curl时出现firebase MISSING_CUSTOM_TOKEN错误“ https://identitytoolkit.googleapis.com/v1
- python - 仅当作者不等于阿尔伯特爱因斯坦时如何抓取项目
- python - 将形状不等的数组列表转换为 Tensorflow 2 数据集:ValueError:无法将非矩形 Python 序列转换为张量
- json - EC2 实例类型的 AWS Cloudformation 模板错误
- javascript - 如何让 NodeJS 子进程通过 CMD.exe 运行 .bat 文件
- python - google-api-python-client 1.8.1 的重大更改 - AttributeError:模块“googleapiclient”没有属性“__version__”
- go - 有没有办法在 VSCode 中保存时运行 go 测试,并将其输出到终端?
- html - 如何隐藏 shadowRoot 元素?
- pytorch - 始终使用 torch.tensor 或 torch.FloatTensor 是否安全?还是我需要小心对待 Ints?
- node.js - 如何在客户端的 socket.on 函数之外获取值?