我在PHP中使用SQLite3。
一位朋友告诉我,我应该更喜欢准备好的陈述,我在StackOverflow上的很多帖子中也读过这个。我想了解使用预准备语句的好处,因为我必须编写更多行,而不是使用常规转义:
$db->exec("Insert INTO table VALUES(NULL,'".$db->escapeString($value)."')"
或使用:
foreach($_POST as $k => $v) {
$_POST[$k] = $db->escapeString($v);
}
为什么要使用预准备语句?有什么优点和缺点?
答案 0 :(得分:1)
Prepared Statement主要用于避免黑客和任何恶意程序完成SQL injection
。
答案 1 :(得分:1)
人们常常将参数与本机预处理语句混淆。我怀疑Sqlite支持后者,但是你必须总是使用参数来替换查询中的实际数据。
当处理参数(也称为“占位符”)时,重要的事情发生了: