В данный момент записываю все значения массива, построчно в базу MySQL, используя INSERT в цикле... Это не правильно... Как можно записать массив построчно в БД не загоняя sql запрос в цикл? Понимаю что через оператор IN, но пока что не получается правильно написать запрос, подскажите пожалуйста на примере массива Код (Text): $array = [Слово1, Слово2, Слово3, Слово4];
Один INSERT может вставлять много записей P.S. Если записей оч. много, то можно и «многострочный» INSERT «загнать в цикл».
Если один запрос то это так: Код (Text): $sql = "INSERT INTO words (word) VALUES ('$reken')"; И как можно, значение $reken поменять на массив, при этом без цикла?
Примерно понял, спасибо... Не срабатывает мой запрос: Код (Text): $sql = "INSERT INTO words (word) VALUES (1, 2)"; Чем мой запрос отличается от инструкции в примере? Код (Text): INSERT INTO tbl_name (a,b,c) VALUES(1,2,3), (4,5,6), (7,8,9);
Вы серьезно? См. на формат запроса, показанный по ссылке, а не на пример. Так может быть понятнее. --- Добавлено --- Цикл, наверно, все равно нужно использовать, но сам запрос уже не будет в цикле. Только с запятушками между записями разберитесь. Или используйте implode с соотв. строкой-разделителем.
Попробуйте может из вашей записи сделать функцию, что-то вроде: PHP: function insert (x, y){ $sql = "INSERT INTO x VALUES y"; } insert (a, (1,2,3)); В общем главное дать идею, а реализация уже в ваших руках!
1. В первых скобочках - перечисление названий полей таблицы, во вторых - их значения. Для вставки нескольких наборов данных (строк): в части values каждый набор - в своих скобочках 2. Существуют подготовленные запросы (prepared statements) и привязка переменной к параметру запроса (bindParam). Cобственно "подготовка" запроса выполняется один раз за пределами цикла. 3. Выполнение нескольких запросов (вставки, обновления...) в рамках одной транзакции так-же уменьшает время их выполнения.