Я новичок в PDO и пытаюсь перепроектировать свою систему и добавить некоторые новые функции.
Я был бы очень признателен, если бы кто-то мог мне помочь, я сам получил первую часть, но так как У меня мало опыта работы с PDO, как я уже сказал, просто дальше не могу.
Как видно из заголовка, существует несколько операторов INSERT.
Ввод значений работает отлично ! Но теперь нужно написать другое значение, и я не знаю, как должен работать синтаксис.
Вот мой предыдущий код:
$player_tag = "#xyz";
$a_arr = [];
$b_arr = [];
$c_arr = [];
$a_arr[] =
["name" => $decoded_json['name'],
"rank" => (int)$decoded_json['rank']];
$b_arr[] =
["name" => $decoded_json_2['name'],
"rank" => (int)$decoded_json_2['rank']];
$c_arr[] =
["name" => $decoded_json_3['name'],
"rank" => (int)$decoded_json_3['rank']];
$tables_to_insert = [];
if (!empty($a_arr)) $tables_to_insert[] = "a";
if (!empty($b_arr)) $tables_to_insert[] = "b";
if (!empty($c_arr)) $tables_to_insert[] = "c";
if (!empty($tables_to_insert)) {
foreach ($tables_to_insert as $table) {
$current_arr = ${$table . "_arr"}; // a_arr, b_arr, c_arr
console_log($current_arr);
$current_table = 'player_' . $table; // player_a, player_b, player_c
$names_arr = array_column($current_arr, 'name');
$ranks_arr = array_column($current_arr, 'rank');
$names = implode(", ", $names_arr);
$place_holders = implode(',', array_fill(0, count($ranks_arr), '?'));
$sth = $conn->prepare("INSERT INTO `" . $current_table . "` ($names) VALUES ($place_holders)");
$sth->execute($ranks_arr);
}
}
Что следует добавить:
colum player_tag для всех этих таблиц
Я пробую это, но это не сработало.
$sth = $conn->prepare("INSERT INTO `" . $current_table . "` (player_tag, $names) VALUES ($player_tag, $place_holders)");
$sth->execute($ranks_arr);