防止 SQL 注入插入

Preventing SQL injection insert into

我无法将数据插入我的数据库。这是我第一次处理 SQL 注入。

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

$stmt->execute();

但这不起作用。如有任何帮助,我们将不胜感激!

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

$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,您的代码将如下所示:

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

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

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