首页 > 解决方案 > 是否可以在使用 php 的 mysql 查询的值部分中使用数组?

问题描述

是否可以使用 PHP 在以下类型的 mysql 查询中使用某种数组?

$query = "INSERT INTO $table_name ($table_columns) VALUES($my_array)";

情况:我正在创建一个库/包,允许用户将 csv 文件数据上传到 laravel 中的 mysql 数据库表中。

库/包将允许用户输入所需的表名并上传他们选择的 csv 文件。

数组最适合 VALUE 字段的原因是因为它将解决手动输入/更新 VALUE 参数的需要(因为根据表列计数,CSV 行参数计数可以是任何有问题的数字)。

标签: phpmysql

解决方案


是的。这是可能的。如您所知,INSERT 查询的语法是:

INSERT INTO table (col1, col2) VALUES (1, 'ABC');

因此,您可以使用 implode 函数通过数组将数据插入 MySQL。

$table_name = "users";
$columns = implode(", ",array_keys($insData));
$escaped_values = array_map('mysql_real_escape_string', array_values($insData));
$values  = implode(", ", $escaped_values);
$sql = "INSERT INTO $table_name ($columns) VALUES ($values)";

推荐阅读