【发布时间】:2016-06-15 14:03:26
【问题描述】:
我正在尝试使用 mysqli trough 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...
}
问题: 我总是收到一条错误消息,说“'ts be”附近的 sql 语法有问题输入...
有人知道我能做些什么吗?
提前致谢!
【问题讨论】:
-
使用
bind_param阅读php.net/manual/en/mysqli-stmt.bind-param.php -
阅读 SQL 转义和预处理语句,它既能解决你的问题,又能防止未来出现大量的安全问题。
-
不,不要转义你的 sql,现在是 2016 年,使用准备好的 statemtnes。除非你试图进行 sql 注入攻击
-
@PootieTang 你到底是什么意思?
-
@CoderYordi - 请参阅下面 Saty 的回答,当您致电
$conn->prepare()时,您正在创建一个准备好的语句。当您调用$stmt->bind_param()时,您正在安全地绑定一个变量。这是将用户输入插入数据库的唯一安全且正确的方法。我建议你试试她/他的例子。