Ключи и значения собираю в строку с помощью implode
.
Как вставить их в mysql
?
$table
- название таблицы
$data
- массив
$worker = ['id' => '', 'first_name' => 'aleks', 'last_name' => 'snake', 'title' => 'programmist', 'age' => 31, 'salary' => '65000'];
public function insert($table, $data) {
$key = implode(', ', array_keys($data));
$value = implode(', ', array_values($data));
$post = mysqli_query($this->mysqli, "INSERT INTO $table ($key) VALUES ($value)");
}
Если задача стоит в сохранении в MySQL, я не рекомендую использовать Ваш способ. Могу предложить следующий:
public function insert($table, $data) {
$data = json_encode($data, JSON_UNESCAPED_UNICODE),
$post = mysqli_query($this->mysqli, "INSERT INTO $table (`column`) VALUES ($data )");
}
А если все-же хотите такой, как у Вас:
public function insert($table, $data) {
$key = '`'.implode('`, `', array_keys($data)).'`';
$value = '"'.implode('", "', array_values($data)).'"';
$post = mysqli_query($this->mysqli, "INSERT INTO $table ($key) VALUES ($value)");
}
Но это скорее из категории "плохая практика". Вышеуказанный код годится, если поля в таблице в БД используют строчный тип... В противном случае будут проблемы.
Конечно можно сделать проверки типа... Но тогда Вам проще использовать первый вариант или готовое решение
Советую посмотреть в сторону типа поля JSON и хранить массив в этом формате. Правда будут некоторые ограничения с "манипуляцией им средствами SQL" и некоторый ущерб скорости операции (не критично на небольших базах). Некоторые поля из json могут автоматически записываться в назначенные ячейки с помощью GENERATED.
это скорее дополнение ответа @Node_pro, но репутация не позволяет мне пока оставлять комментарии
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возникила такая проблема, нужно вывести разницу двух переменных $balance и $total_limit Но местами выводится значение в периодек примеру, когда
Если товар не лежит в категории то выводит ошибку на странице