Error with SQL in PHP


Error with SQL in PHP

嘿,伙计们,我有一个有两个文本输入的表单,当用户填写它时,数据被插入到数据库中,像这样…

$sql = "INSERT INTO $user (note_name, note_body, creation_date)
        VALUES ('$name','$note','$date')";

然而,我有一个问题,当一个撇号输入作为文本输入的一部分,我得到"错误在SQL语法"..我相信它将撇号作为SQL查询的一部分,对吧?假设我在$note变量中输入"Bob’s Computer","Bob’s"中的撇号是该变量周围撇号的结束?

有办法解决这个问题吗?

您可能需要在将数据作为查询之前对其进行消毒。清理将避免此类问题,即使输入是恶意的。您需要这样对变量使用mysqli_real_escape_string:

$name = mysqli_real_escape_string($conn, $name);
$note = mysqli_real_escape_string($conn, $note);
$date = mysqli_real_escape_string($conn, $date);
$sql = "INSERT INTO `user` (`note_name`, `note_body`, `creation_date`) VALUES ('$name','$note','$date')";

同样,像上面那样将SQL查询放在反引号内总是好的。我还觉得表是user而不是$user有问题吗?

注意:预处理语句确实比使用这个函数更好。因为我不确定它的用法,所以我没有在我的回答中添加它。