避免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注入两种方式,没有区别。选择你更喜欢的那个