如何在 PHP 中的 MySQL 查询中使用数组元素
在 PHP 中,您可以使用数组中的值执行 MySQL 查询整数作为输入参数。这种技术在对数组中的每个元素执行单独的 UPDATE 操作时特别有用。
准备语句:更安全、更高效的方法
确保安全和效率对于您的查询,强烈建议使用准备好的语句。这涉及创建参数化 SQL 查询,然后在执行期间将数组元素作为参数传递。
考虑以下 PHP 代码:
$ids = array(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();
此代码准备参数化 UPDATE 查询,然后迭代数组,将每个元素绑定到占位符 (?) 并执行查询。通过使用准备好的语句,您可以降低 SQL 注入攻击的风险并提高性能。
非迭代方法:高效的批量操作
另一种方法,适合批量操作,就是在SQL查询中使用多个参数占位符,并将数组绑定到它们上
$ids = array(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); $types = str_repeat("i", count($ids)); $args = array_merge(array($types), $ids); call_user_func_array(array($stmt, 'bind_param'), ref($args)); $stmt->execute(); $stmt->close(); echo "Updated record IDs: " . implode("," $ids) ."\n";
此方法准备单个参数化 SQL 查询并立即绑定整个数组,从而提高批量操作的效率。请记住使用 ref 函数创建对数组值的引用,这是 bind_param 方法正常工作所必需的。
通过利用提供的代码片段并了解准备好的语句的好处,您可以有效地使用数组PHP 中 MySQL 查询中的元素,确保安全性和性能优化。
以上是如何使用 PHP 数组高效更新多条 MySQL 记录?的详细内容。更多信息请关注PHP中文网其他相关文章!