PDO sql注入安全


PDO SQL-Injection Safety

避免SQL注入的保存方法是什么

我看到了很多方法来建立查询,我的问题是什么是最安全的方法来避免sql注入。

插入1

$st = $this->db->prepare("SELECT * FROM tbl WHERE name=? AND pass=?");
$st->bindParam(1, $name);
$st->bindParam(2, $pass);
$st->execute();

INSERT 2

$stmt = $this->db->prepare("INSERT INTO tbl VALUES(:id, :name)");
$stmt->bindValue(':id', $id);
$stmt->bindValue(':name', $name);
$stmt->execute();

更新1

$st1 = $this->db->prepare("UPDATE tbl SET name=? WHERE name=?");
$st1->bindParam(1, $newname);
$st1->bindParam(2, $name);
$st1->execute();

选择

$st = $this->db->prepare("SELECT * FROM tbl WHERE name=?");
$st->bindParam(1, $name);
$st->execute();

使用bindParam(1, $name)bindParam(:id, $name)来避免数据库中的sql注入是否更安全?

您将避免SQL注入两种方式,没有区别。选择你更喜欢的那个