Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2014, 09:51   #1
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию Массив в MySQL, упростить

Таким образом я добавляю в MySQL массив строк

PHP код:
        //$Lines - переменная, в которой несколько строк разделёнными символами переноса строки
        
$Lines explode(PHP_EOL$Lines);
        
$c=count($Lines);
        
$a=0;
        while (
$a<$c) {
            
do_query(" INSERT INTO `lines` (`str`)VALUES('$Lines[$a]')");
            
$a=$a+1;
        } 

Вопрос:
Возможно ли передать MySQL строку, не деля её на массив, чтобы MySQL сама добавила данные построчно?
К сожалению ничего не нагуглил.
Для того чтобы не записывались повторы, у столбца str установлен флаг уникальности. Если можно добавлять строку как я хочу(или массив), правильно ли добавятся данные?
lollollollol вне форума Ответить с цитированием
Старый 18.05.2014, 11:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Насколько я помню пакетный оператор мускул не поддерживает всетки, т.е. нельзя.
Выполнять именно в цикле - как у тебя.
Впрочем может тебе стоит почитать мануал по твоему мускулу, вдруг чудо свершилось и пакетные операции уже изобретены?.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2014, 11:51   #3
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Читал, но не видел. По этому и обратился сюда, вдруг не разглядел, зренее может уже не то
lollollollol вне форума Ответить с цитированием
Старый 18.05.2014, 11:59   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Пакетное добавление данных одним запросом в MySQL возможно – но в данном случае этот способ не прокатит, из-за уникальности поля str.
Andkorol вне форума Ответить с цитированием
Старый 18.05.2014, 14:35   #5
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

INSERT IGNORE INTO `lines` (`str`) VALUES ('line1'), ('line2'), ('line3'), ('line3'), ('line2'), ('line1');
Kostia вне форума Ответить с цитированием
Старый 18.05.2014, 14:42   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Kostia Посмотреть сообщение
INSERT IGNORE INTO `lines` (`str`) VALUES ('line1'), ('line2'), ('line3'), ('line3'), ('line2'), ('line1');
Точно! Про IGNORE-то я и забыл совсем!
Тогда прокатит))
Andkorol вне форума Ответить с цитированием
Старый 19.05.2014, 09:13   #7
vasiatka
Пользователь
 
Аватар для vasiatka
 
Регистрация: 18.02.2014
Сообщений: 90
По умолчанию

Примерно так.

PHP код:
$Lines explode(PHP_EOL$Lines);
$Lines implode('), ('$Lines);
do_query(" INSERT INTO `lines` (`str`)VALUES  ( $Lines )"); 
правда кавычки еще может где надо
В бинарной системе счет ведут не по пальцам, а по кулакам.
Пенза - мой город - я из Пензы.

Последний раз редактировалось vasiatka; 19.05.2014 в 09:20.
vasiatka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив данных базы MySql MedwedoS PHP 4 02.04.2014 22:27
[C#] [MySQL] Чтение таблицы в массив Pandemonium-88 C# (си шарп) 1 19.06.2012 20:00
Как извлечь в один массив данные из одного столбца в MySQL ? Novichok PHP Помощь студентам 0 25.03.2011 21:39
Одномерный массив(Паскаль). Упростить код AnL Помощь студентам 1 17.12.2009 01:37
Запрос mysql - создать массив на лету. iankov SQL, базы данных 0 24.01.2009 12:01