我的Msql SQL语句有什么问题?

时间:2014-07-11 19:14:14

标签: mysqli

这是我的代码 我收到以下错误

警告:mysqli_free_result()要求参数1为mysqli_result,布尔值在

中给出
    $cat_title=mysqli_real_escape_string($mysqli, $_POST['category_title']);
    $cat_desc = mysqli_real_escape_string($mysqli, $_POST['category_desc']);
    $sql="INSERT INTO store_categories(cat_title, cat_desc) VALUES('".$_POST['category_title']. "', ' ".$_POST['category_desc']. "')";
    $res=mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));
    mysqli_free_result($res);

1 个答案:

答案 0 :(得分:0)

您正在为$ cat_title和$ cat_desc分配值,但在SQL中您使用的是原始的非转义字符串,因此您很容易受到SQL注入攻击。它应该是这样的:

$cat_title=mysqli_real_escape_string($mysqli, $_POST['category_title']);
$cat_desc = mysqli_real_escape_string($mysqli, $_POST['category_desc']);
$sql="INSERT INTO store_categories(cat_title, cat_desc) VALUES('$cat_title', '$cat_desc')";
$res=mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));
mysqli_free_result($res);