Не работает правильный SQL-запрос!

AlexFree

Новичок
Не работает правильный SQL-запрос!

Дело вот в чём: нужно добавить записи из массива в таблицу.
В цикле формирую запрос:

$sql="";

for ($i=1;$i<=$na;$i++)
{
$sql.=" INSERT INTO voting SET то-то и то-то";
}

$result=mysql_query($sql) or die($sql);

Запрос не работает!
Копирую сформированный запрос (который die выводит) в буфер, вставляю в MySQL..
И что вы думаете? Всё супер!!!
В чём тут беда?
Может mysql_query не поддерживает запросы большие?
 

lucas

Guest
[m]mysql_query[/m] выполняет только один запрос.

Решения проблемы:

1. mysql_query в цикле.

2. Синтаксис INSERT INTO для множественной вставки -- INSERT INTO table (field1,field2) VALUES ('value1_1','value2_1'),
('value1_2','value2_2').
 

AlexFree

Новичок
Автор оригинала: lucas
[m]mysql_query[/m] выполняет только один запрос.

Решения проблемы:

1. mysql_query в цикле.

2. Синтаксис INSERT INTO для множественной вставки -- INSERT INTO table (field1,field2) VALUES ('value1_1','value2_1'),
('value1_2','value2_2').
Проблемы при решении 1: а если записей 5000? то 5000 запросов? Тормозить ведь будет, если вообще не загнётся ;-)

Спасибо, но всё гораздо проще:
подключиться ещё разок к БД надо перед этим запросом, а я думал предыдущего подключения хватит :))))

Кстати, [m]mysql_query[/m] выполняет, конечно, один запрос, но запрос может быть дли-и-и-и-инным; операторы разделяются точкой с запятой.
 

Demiurg

Guest
>подключиться ещё разок к БД надо перед этим запросом, а я думал предыдущего подключения хватит
поподробнее

> но запрос может быть дли-и-и-и-инным; операторы разделяются точкой с запятой.
это называется уже не один запрос.
 

fixxxer

К.О.
Партнер клуба
1. Через точку с запятой - это несколько запросов. Если ты посмотришь исходники phpMyAdmin, он делит по точке с запятой на разные запросы и исполняет каждый отдельным mysql_query
2. Подключаться к базе надо ОДИН раз.
3. INSERT INTO voting SET то-то и то-то - не путай insert с update. Правильный синтаксис тебе уже подсказали.
 

Фанат

oncle terrible
Команда форума
AlexFree
уверенность, с которой ты пишешь вопиющие глупости, просто поражает.
И это ты, который пришел с ламерским вопросом на йорум, объясняешь людям, которыетебе отвечают, как правильно, что
подключиться ещё разок к БД надо перед этим запросом,
и что
выполняет, конечно, один запрос, но запрос может быть дли-и-и-и-инным; операторы разделяются точкой с запятой
после таких заявлений, человека надо пинками гнать читать документауию, а не возиться с ним.
 

AlexFree

Новичок
Автор оригинала: fixxxer
1. Через точку с запятой - это несколько запросов. Если ты посмотришь исходники phpMyAdmin, он делит по точке с запятой на разные запросы и исполняет каждый отдельным mysql_query
2. Подключаться к базе надо ОДИН раз.
3. INSERT INTO voting SET то-то и то-то - не путай insert с update. Правильный синтаксис тебе уже подсказали.
1.Вообще-то всё работает и mysql_query() выполняет несколько запросов.

2.Смотря, что использовать: mysql_connect() или mysql_pconnect().

3.Спасибо, но я ничего не путаю.

2Фанат: ты чего на людей бросаешься? я, по-моему, никого не оскорблял!:mad:
 

Фанат

oncle terrible
Команда форума
может, в юмор? :)
давно я не встречал таких писателей-фантастов :)

алёшенька.
то, что ты написал - бред.
Вовпрос не в том, что это не работает.
Вопрос в том, когда ты поймешь, что ты бредишь, и сколько времени надо отнять на это у занятых людей.
 

AlexFree

Новичок
Автор оригинала: Фанат
может, в юмор? :)
давно я не встречал таких писателей-фантастов :)

алёшенька.
то, что ты написал - бред.
Вовпрос не в том, что это не работает.
Вопрос в том, когда ты поймешь, что ты бредишь, и сколько времени надо отнять на это у занятых людей.
Я не алёшенька!!!! Это у тебя горячка!!! Вообще-то всё - тема закрыта!
 
Сверху