Joomla 1.5 невозможно установить компонент, если его база данных пустая

Тема в разделе "Создание расширений для Joomla", создана пользователем radistao, 06.04.2009.

  1. Offline

    radistao Недавно здесь

    Регистрация:
    02.01.2009
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Сделал компонент, прописал в install.sql

    "
    Код (CODE):
    1. [B]DROP TABLE IF EXISTS `#__XXX`;
    2. CREATE TABLE `#__XXX` (
    3.   `id` int(11) unsigned NOT NULL auto_increment,
    4.   `title` varchar(255) NOT NULL,
    5.   `alias` varchar(255) NOT NULL,
    6.   `describe` varchar(255) NOT NULL,
    7.   `path` varchar(255) default NULL,
    8.   PRIMARY KEY  (`id`),
    9.   UNIQUE KEY `id` (`id`)
    10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;[/B]
    "

    но получаю ошибку, что неовзможно выполнить MySQL запрос "
    Код (CODE):
    1. DROP TABLE IF EXISTS `#__XXX`
    ;"

    1)пробую выполнить этот запос в phpMyAdmin - пожалуйста.
    2)пробую удалить эту строку из install.sql - тогда невозможно выполнить "
    Код (CODE):
    1. [B]CREATE TABLE[/B]
    " (т.е., следующий запрос, при этом данная таблица не существует)
    3)а теперь самое интересное - все работает, если последней строкой в файле добавить вставку любой строки, например
    "
    Код (CODE):
    1. [B]INSERT INTO `#__ХХХ` VALUES (1, '', '', '', 0, 0, 1, 0);[/B]
    "

    так почему нельзя создать пустую таблицу?

    У меня есть одно подозрение: MySQL возвращает 0 в случае успешного выполнения запросов
    Код (CODE):
    1. [B]DROP TABLE IF EXISTS `#__XXX`[/B]

    и
    Код (CODE):
    1. [B]CREATE TABLE `#__XXX` (
    2.   `id` int(11) unsigned NOT NULL auto_increment,
    3.   `title` varchar(255) NOT NULL,
    4.   `alias` varchar(255) NOT NULL,
    5.   `describe` varchar(255) NOT NULL,
    6.   `path` varchar(255) default NULL,
    7.   PRIMARY KEY  (`id`),
    8.   UNIQUE KEY `id` (`id`)
    9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;[/B]


    Мож джумла проверяет результат по типу
    Код (PHP):
    1. if(!$database->query())

    поэтому и считает это за ошибку?

    P.S. пробовал на разных апачах, Mysql-серверах, с разным содержанием таблицы - эффект тот же
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Это отдельные запросы, соответственно в отдельные тэги надо их пихать.
     
  4. Offline

    radistao Недавно здесь

    Регистрация:
    02.01.2009
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    какие теги? это все прописано строками в файле install.xxx.sql. там никаких тегов нет, там просто запросы
     
  5. Offline

    _voland_ специалист

    Регистрация:
    12.04.2008
    Сообщения:
    2 173
    Симпатии:
    102
    Пол:
    Мужской
    Пиши так
    <queries>
    <query>
    DROP...
    </query>
    <query>
    CREATE ...
    </query>
    </queries>
     
  6. Offline

    radistao Недавно здесь

    Регистрация:
    02.01.2009
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    тобишь задум джумловодов по созданию установочног файла с запросами пошел по женской линии? возвращаемся к старым методам? или это реально баг? мож тогда нада заявить куд-нить?
     
  7. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Что за словечки?

    Меня лично смущает install.sql. Чего это за файл такой. Все сто лет как в XML-файле делают.
     
  8. Offline

    radistao Недавно здесь

    Регистрация:
    02.01.2009
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    ну в 1.0 так и было, а в 1.5 я везде находил именно отдельный файл, и мне так было удобнее
     
  9. Offline

    radistao Недавно здесь

    Регистрация:
    02.01.2009
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Ну как, закрываем тему?
     

Поделиться этой страницей

Загрузка...