防止SQL注入插入

时间:2016-05-01 11:49:18

标签: php sql-injection

我在将数据插入数据库时​​遇到问题。这是我第一次处理SQL注入。

$stmt = $dbConnection->prepare('INSERT INTO users(name) VALUES('name = ?')');
$stmt->bind_param('s', $name);

$stmt->execute();

但这不起作用。任何帮助都会受到欢迎!

2 个答案:

答案 0 :(得分:3)

您的代码中存在一些语法错误。试试这个:

b

如果要插入和定义更多值,请执行以下操作:

$stmt = $dbConnection->prepare('INSERT INTO users (name) VALUES (:s)');
$stmt->bindParam(':s', $name);
$stmt->execute();

如果您使用的是$stmt = $dbConnection->prepare('INSERT INTO users (name, email) VALUES (:s, :email)'); $stmt->bindParam(':s', $name); $stmt->bindParam(':email', $email); $stmt->execute(); ,您的代码将如下所示:

mysqli

答案 1 :(得分:2)

您在SQL中不需要name =,列名在表名后的列表(name)中指定。只需将?放在通常放置值的位置。

$stmt = $dbConnection->prepare('INSERT INTO users(name) VALUES(?)');
$stmt->bind_param('s', $name);
$stmt->execute();