Php Codeigniter DB类与准备好的语句

Php Codeigniter DB类与准备好的语句,php,mysql,codeigniter,pdo,mysqli,Php,Mysql,Codeigniter,Pdo,Mysqli,您好,我想知道在安全问题上,使用Codeigniters活动记录类是否等同于使用准备好的语句 <?php $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':value', $value); // insert one row $name = 'one

您好,我想知道在安全问题上,使用Codeigniters活动记录类是否等同于使用准备好的语句

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

?>

CI不支持预处理语句,但它支持查询绑定。查询绑定和准备好的语句都会阻止sql注入。但我更喜欢AR,因为它易于使用。它还使查询更具可读性

您可以查看此以了解更多详细信息


并从此

检查CI查询绑定以直接回答问题。对

这两条语句都被转义,从而提供了防止注入攻击的安全性。 CodeIgniter db insert方法为您进行转义,php准备的语句自然包含转义

请参阅有关php准备语句的信息

否则,在速度、运行方式等方面,这两种说法并不相同

侯赛因已经把剩下的都搞定了

 $data = array(
   'title' => 'My title' ,
   'name' => 'My Name' ,
   'date' => 'My date'
);

$this->db->insert('mytable', $data); 

// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')