这个 PHP 插入是否安全?
Would this PHP inserting be secure?
我一直在编写一个小脚本来将数据插入数据库,但我不太确定这种方式是否安全。一些反馈会很酷!所以我的问题是,这是一种安全的数据插入方式吗?
代码:
function dbRowInsert($table, $data) {
require_once('../config.inc.php');
$buildData = null;
$countLoop = 1;
foreach($data as $field) {
$sep = ($countLoop!=count($data) ? ',' : '') ;
if((int)$field == $field) {
$buildData .= (int)$field . $sep;
} else {
$buildData .= '"' .mysqli_real_escape_string((string)$field) . '"' . $sep;
}
$countLoop++;
}
$fields = array_keys($data);
mysqli_query($conn, "INSERT INTO" . $table . "(`" . implode('`, `', $fields) . "`)
VALUES('" . $buildData . "')");
}
最好的方法是使用面向对象的风格。这是第一个。第二种是使用方法
prepare(), bind(), execute()
而不是
mysqli_real_escape_string()
等等
阅读手册,它很简单,你会发现它非常有用和安全。
我一直在编写一个小脚本来将数据插入数据库,但我不太确定这种方式是否安全。一些反馈会很酷!所以我的问题是,这是一种安全的数据插入方式吗?
代码:
function dbRowInsert($table, $data) {
require_once('../config.inc.php');
$buildData = null;
$countLoop = 1;
foreach($data as $field) {
$sep = ($countLoop!=count($data) ? ',' : '') ;
if((int)$field == $field) {
$buildData .= (int)$field . $sep;
} else {
$buildData .= '"' .mysqli_real_escape_string((string)$field) . '"' . $sep;
}
$countLoop++;
}
$fields = array_keys($data);
mysqli_query($conn, "INSERT INTO" . $table . "(`" . implode('`, `', $fields) . "`)
VALUES('" . $buildData . "')");
}
最好的方法是使用面向对象的风格。这是第一个。第二种是使用方法
prepare(), bind(), execute()
而不是
mysqli_real_escape_string()
等等
阅读手册,它很简单,你会发现它非常有用和安全。