Передайте массив данных в PHP-скрипт и вставьте его в MySQL

0

У меня есть клиентское приложение, написанное на С#, из которого мне нужно вставить информацию, используя интерфейс api. Я пытаюсь сделать это api, но я действительно новичок в веб-разработке. Из того, что я понимаю, мне нужно сделать POST (для лучшей безопасности) x-www-form-urlencoded запрос к моему веб-скрипту api. У меня есть такие параметры:

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_key и data_selenium_browser и data_driver_path.

Поэтому я разбираю все эти параметры, и теперь мне нужно вставить массив data_key и data_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 или что-то в этом роде, чтобы выбрать все эти столбцы при отображении информации пользователя?

Теги:
post
parameters

1 ответ

1
Лучший ответ

Используйте цикл 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();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню