Forum Webscript.Ru
Программирование => PHP => Тема начата: a@mail.dux.ru от 15 Марта 2003, 02:00:07
-
у меня есть несколько запросов на ардейт базы данных MySql
я хочу их сделть одним махом. когда я ввожу их в окно Выполнить SQL запрос(ы) на БД в пхпМайадмин, то после каждого запроса ставлю ; и все работает.
а вот когда я тоже самое делаю в php не работает.
пример запроса, кот надо выполнить.
update page set field1=3 where id=1;
update page set field1=6 where id=2;
пишу:
$SQLUpdate="update page set field1=3 where id=1;
update page set field1=6 where id=2;" ;
mysql_query($SQLUpdate) or die("Update ERROR ");
выдает ошибку.
не хочу делать апдейт несколько раз, так как у меня выполняется цикл и в нем могут быть десятки таких обновлений.
А вот запомнить их и одним разом выполнить было бы здорово.
Может кто чего подскажет?
Спасибо
-
ну, в принципе ты можешь загнать их все в файл, и выполнить запросом load data infile, но при всего нескольких десятках запросов овчинка выделки не стоит.
А то, что mysql_query не позволяет выполнять больше одного запроса - это фича.
-
что такое фича? как понимаю "неправда?" но у меня не работает
-
то, что специально так сделано, чтобы mysql_query больше одного запроса не выполняла.
или напиши свою ф-ю, которая будет разбирать запросы, разделенные, например ";"
-
калька с feature. антоним слова "bug"
-
Britva
дело в том, что в пхп я так и делаю, как ты указываешь, только вручную пишу
$SQLUpdate="update page set field1=3 where id=1;
update page set field1=6 where id=2;" ;
И нерабоатет.
RomikChef
То есть как я тебя понял, мой двойной запрос через ; должен рабоать?
-
a@mail.dux.ru
тебе же сказали, разбивать запросы надо. То есть в mysql_query() нужно передавать один UPDATE-запрос.
mysql_query("update page set field1=3 where id=1");
mysql_query("update page set field1=6 where id=2");
Единственный AFAIK выход подсказал тебе RomikChef -
load data infile \'your_file.txt\' replace into table ...
MySQL очень быстро (судя по ману) выполняет такие запросы, но тебе прийдется немножко поизвращаться с созданием файла
-
http://pear.sourceforge.net/manual/core.db.prepare.php
-
Про LOAD DATA LOCAL INFILE - возникли проблемы
вот добавляю данные в таблицу из файла таким скриптом.
$zapr="LOAD DATA INFILE \'C:/www/plevel3.txt\'
INTO TABLE xxxx3
fields terminated
by \',\'
LINES TERMINATED BY \'\\;
\'
";
mysql_query($zapr);
содержимое plevel3.txt:
INSERT INTO xxxx3 VALUES (1, 0, 1, 1, \'Моя семья\', \'\', \'0\', 1);
INSERT INTO xxxx3 VALUES (2, 0, 1, 2, \'Я\', \'\', \'0\', 1);
INSERT INTO xxxx3 VALUES (3, 0, 1, 3, \'Услуги и цены\', \'\', \'0\', 1);
все хорошо, кроме одного -текстовые поля, заключенные в \' \' так и добавляются в кавычках
те в базе данных это выглядит вот так:
1 0 1 1 \'Моя семья\' \'\' \'0\' 1
2 0 1 2 \'Я\' \'\' \'0\' 1
3 0 1 3 \'Услуги и цены\' \'\' \'0\' 1
Как мне избавиться от этих кавычек при добавлении?
Спасибо