многострочный INSERT

373
26 ноября 2016, 20:23

Есть некоторый массив данных:

array('number'=>'one', 'time'=>'seven', 'fruit'=>'apple')

имена ключей заранее не известны. Так же есть таблица с такими столбцами:

hash|time|key|val

hash - это некоторый идентификатор по которому можно выбрать все значения данного массива. Как одним запросом "вставить" массив в базу?

Answer 1
$myArray = [ ваши пары значений];
$db = new mysqli(данные для коннекта);
$stmt = $db->prepare('INSERT INTO table (hash, key, val) VALUES (?,?,?)';
foreach($myArray as $key => $value){
    $hash = вычисляем нужный хэш;
    $stmt->bind_params('sss', $hash, $key, $value);
    $stmt->execute();
}
$stmt->close();
$db->close();

запрос не один, но зато "подготовленный", т.е. отработает достаточно быстро.

upd кроме того, вставлять массив заранее неизвестного размера одной операцией крайне опасно. Можно нарваться на физическую невозможность сервера БД переварить очень большой запрос.

READ ALSO
не получается добавить колонку в конец таблицы mysql

не получается добавить колонку в конец таблицы mysql

подскажите пожалуйста, я в mysql совсем зелёный еще, мне в созданную таблицу нужно добавить колонку timestampпишу вот такой запрос:

449
Как зафиксировать команду в консоли MySQL?

Как зафиксировать команду в консоли MySQL?

Вошёл в консоль mysql под пользователемКоманда:

305
Как перехватить переменные?

Как перехватить переменные?

Ребят почему я не могу перехватить переменные cat, чтобы отображать товары по категориям

461