php - 将数据数组传递给 PHP 脚本,并将其插入到 mysql

标签 php mysql post parameters

我有一个用 C# 编写的客户端应用程序,我需要使用 api 接口(interface)从中插入信息。我试图制作该 api,但我在网络开发方面确实是新手。据我了解,我需要向我的 Web api 脚本发出 POST(为了更好的安全性)x-www-form-urlencoded 请求。我有一个像这样的帖子参数:

client_id=1234&client_version=4&data_key[0]=encryptionkey1&data_selenium_browser[0]=firefox46&data_driver_path[0]=c:\user\appdata\client\drivers\s_driver1.exe&data_key[1]=encryptionkey2&data_selenium_browser[1]&data_driver_path[1 ]=c:\user\appdata\client\drivers\s_driver2.exe

可以有任意数量的data_keydata_selenium_browserdata_driver_path

所以我解析了所有这些参数,现在我需要为每个用户 ID 插入一个由 data_keydata_selenium_browser 以及 data_driver_path 组成的数组。

我有问题,传递参数数组的更好方法是什么以及如何将其存储在 mysql 中?目前,根据我的想法,我可以做一个单独的表格,如下所示:

CREATE TABLE clients_data (
   client_id int ,
   data_key varchar(32),
   data_selenium_browser varchar(32),
   data_driver_path TEXT
);

所以 client_id 不是唯一的,我假设我必须使用这些参数为每个用户插入多条记录,并执行 LEFT JOIN 或类似的操作,以在显示时选择所有这些列用户信息?

最佳答案

使用foreach循环。以下是如何使用 PDO 准备好的语句来完成此操作。

$update_stmt = $conn->prepare("
    INSERT INTO clients_data (client_id, data_key, data_selenium_browser, data_driver_path)
    VALUES (:id, :key, :browser, :path)");
$update_stmt->bindParam(":id", $id);
$update_stmt->bindParam(":key", $key);
$update_stmt->bindParam(":browser", $browser);
$update_stmt->bindParam(":path", $path);
$id = $_GET['client_id'];
foreach ($_GET['data_key'] AS $index => $key) {
    $browser = $_GET['data_selenium_browser'][$index];
    $path = $_GET['data_driver_path'][$index];
    $update_stmt->execute();
}

关于php - 将数据数组传递给 PHP 脚本,并将其插入到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661090/

相关文章:

php - mySQL WHERE 语句中的多重 AND 比较

php - 页面加载时调用 javascript 链接

php - 动态更新 MySql 表

mysql - MySQL表中的created_At字段可以编辑吗?

python - 对 dict 中的 Unicode 字符进行编码以作为 POST 请求中的数据发送

python - Tornado POST 请求的返回响应

javascript - 显示从 ckeditor 检索到的文本

mysql - Rails 和 MySQL。有什么方法可以查看表格?

mysql - SELECT 子句中的子查询

php - 无法从 $_post 获取值