Php Codeigniter DB类与准备好的语句
您好,我想知道在安全问题上,使用Codeigniters活动记录类是否等同于使用准备好的语句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
<?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')