0

这些是我PDO的 MVC 模式实现的添加、编辑、删除、选择功能。

我需要知道这个实现是否正确使用PDO.

这些是模型类函数:

   public function getStudentById($id){

        $stmt       = $this->db->con->query("SELECT * FROM student WHERE id = '$id'");
        $result     = $stmt->fetch(PDO::FETCH_ASSOC);

        return $result;

    }

    public function addStudent($arrData){

        $sql        = " INSERT INTO student (name,age,address)".
                      " VALUES ('$arrData[name]','$arrData[age]','$arrData[address]')";

        $stmt       = $this->db->con->prepare($sql);
        $stmt->execute();

        return $this->db->con->lastInsertId(); 

    }

    public function editStudent($arrData){

        $sql        =   " UPDATE student SET ".
                        " name='$arrData[name]',age='$arrData[age]',address='$arrData[address]'".
                        " WHERE id=$arrData[id] ";

        $stmt       = $this->db->con->prepare($sql);
        $stmt->execute();

        return $this->db->con->lastInsertId(); 

    }


    public function deleteStudent($id){

        $stmt       = $this->db->con->query("DELETE FROM student WHERE id = '$id'");

    }
4

1 回答 1

0

无论正确与否,您都可以更轻松、更安全地进行操作。PDO 的主要优点之一是支持参数化查询,您只需编写占位符并让 PDO 插入值。这将有助于防止 SQL 注入,因为 PDO 将为您进行正确的格式化。

$sql = 'SELECT * FROM student WHERE id = ?';
$statement = $db->prepare($sql);
$statement->bindValue(1, $id, PDO::PARAM_INT); // or PDO::PARAM_STR
$statement->execute();
于 2013-10-03T07:26:23.523 回答