首页 > 解决方案 > 选择带撇号的框数据未在数据库中提交

问题描述

如果我在我的 POST 请求中输入acesr'sscategoryname它只会插入acesr到我的数据库中。我不知道为什么。

相关代码片段:

$cate_name=mysqli_real_escape_string($conn,$_POST['categoryname']);

$usersql="Insert INTO abc(category_name) VALUES('".$cate_name."')";

我也试过addslashes,但遇到同样的问题。

标签: phpmysqli

解决方案


您可以尝试使用参数化的 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)
                    ));

推荐阅读