在 MySQL 中使用 PHP 数组执行查询
当您有一个需要合并到 MySQL 查询中的元素数组时,您可能会想知道如何有效地处理它。在 PHP 中,有多种方法可以实现此目的:
使用预准备语句
预准备语句是使用动态参数值执行查询的安全且高效的方法。要将准备好的语句与 ID 数组一起使用:
$ids = [2, 4, 6, 8]; $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = ?"; $stmt = $mysqli->prepare($sql); for ($i = 0; $i < count($ids); $i++) { $stmt->bind_param("i", $ids[$i]); $stmt->execute(); echo "Updated record ID: $id\n"; } $stmt->close();
多参数占位符的替代方法
如果您需要使用每个字段的相同数据更新多个字段数组中的ID,可以使用带有多个参数的单个查询占位符:
$ids = [2, 4, 6, 8]; $params = implode(",", array_fill(0, count($ids), "?")); $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN ($params)"; $stmt = $mysqli->prepare($sql); // Dynamic call for parameter binding $types = str_repeat("i", count($ids)); $args = array_merge(array($types), $ids); call_user_func_array(array($stmt, 'bind_param'), ref($args)); // Execute once for all input values $stmt->execute(); $stmt->close(); echo "Updated record IDs: " . implode(",", $ids) . "\n";
选择正确的方法
使用准备好的语句的迭代方法适用于需要一条一条更新多条记录的 UPDATE 和 INSERT 操作。多参数方法对于 SELECT 和 DELETE 操作,或者当您需要使用相同数据更新多个记录时更有效。
准备语句的好处
即使对于小型数组,也请记住使用准备好的语句,以确保数据完整性和性能。
以上是如何使用 PHP 数组高效执行 MySQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!