Php 使用PDO将阵列插入数据库的最佳实践
我正在尝试将数组内容添加到数据库中。我正在用它Php 使用PDO将阵列插入数据库的最佳实践,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试将数组内容添加到数据库中。我正在用它 $arr = ["10","11","12","13"]; foreach ($arr as $value) { $sql = "INSERT INTO `test` (user_id, view) VALUES (:user_id, :view)"; $stmt = $this->conn->prepare($sql); $stmt->bindParam(':user_id', $value);
$arr = ["10","11","12","13"];
foreach ($arr as $value) {
$sql = "INSERT INTO `test` (user_id, view) VALUES (:user_id, :view)";
$stmt = $this->conn->prepare($sql);
$stmt->bindParam(':user_id', $value);
$stmt->bindParam(':view', 'small');
$stmt->execute();
}
这是好的做法还是坏的做法?还有其他好方法吗?您可以始终使用数组执行:
$stmt->execute(array('user_id' => $value, 'view' => 'small'));
这通常会最小化您的代码,并且它还允许您在构建查询时通过if子句积累数据,而不必使代码复杂化
正如@u_mulder所指出的,您只需要准备一次查询,因为它在循环的每次迭代中都不会改变。正确的例子如下:
$arr = ["10","11","12","13"];
$sql = "INSERT INTO `test` (`user_id`, `view`) VALUES (:user_id, :view)";
$stmt = $this->conn->prepare($sql);
foreach ($arr as $value) {
$stmt->execute(array('user_id' => $value, 'view' => 'small'));
}
可能重复的