正在阻止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)中指定在表名之后。只需将一个?放在您通常放置值的位置。

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