Автор Тема: как за один раз выполнить несколько update-ов в MySql череез php  (Прочитано 4542 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
у меня есть несколько запросов на ардейт базы данных 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 ");

выдает ошибку.

не хочу делать апдейт несколько раз, так как у меня выполняется цикл и в нем могут быть десятки таких обновлений.
А вот запомнить их и одним разом выполнить было бы здорово.
Может кто чего подскажет?
Спасибо

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
ну, в принципе ты можешь загнать их все в файл, и выполнить запросом load data infile, но при всего нескольких десятках запросов овчинка выделки не стоит.

А то, что mysql_query не позволяет выполнять больше одного запроса - это фича.

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
что такое фича? как понимаю "неправда?" но у меня не работает

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
то, что специально так сделано, чтобы mysql_query больше одного запроса не выполняла.
или напиши свою ф-ю, которая будет разбирать запросы, разделенные, например ";"
Евгений aka Razor,

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
калька с feature. антоним слова "bug"

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Britva
дело в том, что в пхп я так и делаю, как ты указываешь, только вручную пишу

$SQLUpdate="update page set field1=3 where id=1;
update page set field1=6 where id=2;" ;

И нерабоатет.

RomikChef
То есть как я тебя понял, мой двойной запрос через ; должен рабоать?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
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 очень быстро (судя по ману) выполняет такие запросы, но тебе прийдется немножко поизвращаться с созданием файла
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Не все коту матрица.

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Про 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

Как мне избавиться от этих кавычек при добавлении?
Спасибо

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28