我正在尝试使用mysqli通过PHP将一些文本插入到我的数据库中。
我的插入声明如下:
$userID="1";
$description="Hi! It's been a while..."; //For example...
$sql = "INSERT INTO projecten (user_ref, description)
VALUES ('$userID','$description')";
if ($conn->query($sql) === TRUE) {
//redirect to right page
} else {
//error message...
}
问题: 我总是收到一条错误消息,说我的sql语法中有一些不正确的“'ts been”现在我尝试删除'符号然后代码工作,但我需要能够让我的用户输入他们想要的内容输入...
有人知道我能做些什么吗?
提前致谢!
答案 0 :(得分:1)
使用 bind_param
它会处理所有这些字符串并阻止你形成sql注入
$userID = "1";
$description = "Hi! It's been a while..."; //For example...
$stmt = $conn->prepare("INSERT INTO projecten (`user_ref`, `description`) VALUES (?, ?)");
$stmt->bind_param('is', $userID, $description);
/* execute prepared statement */
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
/* close statement and connection */
$stmt->close();