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

Discussion in 'Создание расширений для Joomla' started by radistao, Apr 6, 2009.

  1. Offline

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

    Joined:
    Jan 2, 2009
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    Сделал компонент, прописал в 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 Недавно здесь => Cпециалист <=

    Joined:
    Apr 13, 2007
    Messages:
    3,685
    Likes Received:
    101
    Gender:
    Male
    Это отдельные запросы, соответственно в отдельные тэги надо их пихать.
     
  4. Offline

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

    Joined:
    Jan 2, 2009
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    какие теги? это все прописано строками в файле install.xxx.sql. там никаких тегов нет, там просто запросы
     
  5. Offline

    _voland_ Местный => Cпециалист <=

    Joined:
    Apr 12, 2008
    Messages:
    2,171
    Likes Received:
    102
    Gender:
    Male
    Пиши так
    <queries>
    <query>
    DROP...
    </query>
    <query>
    CREATE ...
    </query>
    </queries>
     
  6. Offline

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

    Joined:
    Jan 2, 2009
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    тобишь задум джумловодов по созданию установочног файла с запросами пошел по женской линии? возвращаемся к старым методам? или это реально баг? мож тогда нада заявить куд-нить?
     
  7. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Joined:
    Apr 13, 2007
    Messages:
    3,685
    Likes Received:
    101
    Gender:
    Male
    Что за словечки?

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

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

    Joined:
    Jan 2, 2009
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    ну в 1.0 так и было, а в 1.5 я везде находил именно отдельный файл, и мне так было удобнее
     
  9. Offline

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

    Joined:
    Jan 2, 2009
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    Ну как, закрываем тему?
     

Share This Page

Loading...