Привет! Скрипт создает поля в мускул! Но он НЕ добавляет `partner_id` int(11) NOT NULL, И все начинает работать только тогда - когда руками пишу это поле сразу в мускул! При этом модуль в который входит этот скрипт обязательно требует поле `partner_id` int(11) NOT NULL, Замкнутый круг! <?php $installer = $this; $installer->startSetup(); $installer->run(" CREATE TABLE {$this->getTable('marketplace_partnergroup')} ( `group_id` int(11) unsigned NOT NULL auto_increment, `group_name` varchar(255) NOT NULL default '', `group_code` varchar(255) NOT NULL default '', `no_of_products` int(6) NOT NULL, `time_periods` int(11) NOT NULL, `fee_amount` decimal(6,2) NOT NULL, `status` smallint(6) NOT NULL default '0', `created_time` datetime NULL, `update_time` datetime NULL, PRIMARY KEY (`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('marketplace_partnertype')}; CREATE TABLE {$this->getTable('marketplace_partnertype')} ( `index_id` int(11) unsigned NOT NULL auto_increment, `partner_id` int(11) NOT NULL, `type` varchar(255) NOT NULL, `no_of_products` int(11) NOT NULL, `transaction_id` varchar(255) NOT NULL, `transaction_email` varchar(255) NOT NULL, `ipn_transaction_id` varchar(255) NOT NULL, `transaction_date` datetime NOT NULL, `expiry_date` datetime NOT NULL, `transaction_status` varchar(255) NOT NULL, PRIMARY KEY (`index_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; "); $installer->endSetup();
Просто не создает! ((( Создает ровно 9 полей - а я вписываю 10-ое вручную partner_id `group_id` int(11) unsigned NOT NULL auto_increment, `group_name` varchar(255) NOT NULL default '', `group_code` varchar(255) NOT NULL default '', `no_of_products` int(6) NOT NULL, `time_periods` int(11) NOT NULL, `fee_amount` decimal(6,2) NOT NULL, `status` smallint(6) NOT NULL default '0', `created_time` datetime NULL, `update_time` datetime NULL,
Это скрипт в группе модуля. То есть самостоятельно я его не могу подключить к мускулу! Или надо в нем подключение сделать (пароль-бд-юзер) а я не умею Просто изначально модуль не работал по причине a:5:{i:0;s:85:"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'partner_id' in 'where clause'";i и вот когда вручную сделал все заработало! Но вручную это не по правилам
замени $installer->run на php.net/manual/ru/function.file-put-contents.php, чтобы получить sql запрос который формирует скрипт
покажи содержимое файла debug.sql Код (PHP): $sql = " CREATE TABLE {$this->getTable('marketplace_partnergroup')} ( `group_id` int(11) unsigned NOT NULL auto_increment, `group_name` varchar(255) NOT NULL default '', `group_code` varchar(255) NOT NULL default '', `no_of_products` int(6) NOT NULL, `time_periods` int(11) NOT NULL, `fee_amount` decimal(6,2) NOT NULL, `status` smallint(6) NOT NULL default '0', `created_time` datetime NULL, `update_time` datetime NULL, PRIMARY KEY (`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('marketplace_partnertype')}; CREATE TABLE {$this->getTable('marketplace_partnertype')} ( `index_id` int(11) unsigned NOT NULL auto_increment, `partner_id` int(11) NOT NULL, `type` varchar(255) NOT NULL, `no_of_products` int(11) NOT NULL, `transaction_id` varchar(255) NOT NULL, `transaction_email` varchar(255) NOT NULL, `ipn_transaction_id` varchar(255) NOT NULL, `transaction_date` datetime NOT NULL, `expiry_date` datetime NOT NULL, `transaction_status` varchar(255) NOT NULL, PRIMARY KEY (`index_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; "; file_put_contents('debug.sql', $sql, FILE_APPEND);
<?php $sql = " CREATE TABLE {$this->getTable('marketplace_partnergroup')} ( `group_id` int(11) unsigned NOT NULL auto_increment, `group_name` varchar(255) NOT NULL default '', `group_code` varchar(255) NOT NULL default '', `no_of_products` int(6) NOT NULL, `time_periods` int(11) NOT NULL, `fee_amount` decimal(6,2) NOT NULL, `status` smallint(6) NOT NULL default '0', `created_time` datetime NULL, `update_time` datetime NULL, PRIMARY KEY (`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('marketplace_partnertype')}; CREATE TABLE {$this->getTable('marketplace_partnertype')} ( `index_id` int(11) unsigned NOT NULL auto_increment, `partner_id` int(11) NOT NULL, `type` varchar(255) NOT NULL, `no_of_products` int(11) NOT NULL, `transaction_id` varchar(255) NOT NULL, `transaction_email` varchar(255) NOT NULL, `ipn_transaction_id` varchar(255) NOT NULL, `transaction_date` datetime NOT NULL, `expiry_date` datetime NOT NULL, `transaction_status` varchar(255) NOT NULL, PRIMARY KEY (`index_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; "; file_put_contents('debug.sql', $sql, FILE_APPEND);
раздел сделай за меня самый весёлый, развивает интуицию и телепатию, почитай вот это http://phpfaq.ru/debug Вот это попробуй запусти Код (PHP): <?php $installer = $this; $installer->startSetup(); $sql = " CREATE TABLE {$this->getTable('marketplace_partnergroup')} ( `group_id` int(11) unsigned NOT NULL auto_increment, `group_name` varchar(255) NOT NULL default '', `group_code` varchar(255) NOT NULL default '', `no_of_products` int(6) NOT NULL, `time_periods` int(11) NOT NULL, `fee_amount` decimal(6,2) NOT NULL, `status` smallint(6) NOT NULL default '0', `created_time` datetime NULL, `update_time` datetime NULL, PRIMARY KEY (`group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('marketplace_partnertype')}; CREATE TABLE {$this->getTable('marketplace_partnertype')} ( `index_id` int(11) unsigned NOT NULL auto_increment, `partner_id` int(11) NOT NULL, `type` varchar(255) NOT NULL, `no_of_products` int(11) NOT NULL, `transaction_id` varchar(255) NOT NULL, `transaction_email` varchar(255) NOT NULL, `ipn_transaction_id` varchar(255) NOT NULL, `transaction_date` datetime NOT NULL, `expiry_date` datetime NOT NULL, `transaction_status` varchar(255) NOT NULL, PRIMARY KEY (`index_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; "; file_put_contents('debug.sql', $sql, FILE_APPEND); $installer->run($sql); $installer->endSetup();
Спасибо большое за помощь! Но не создается файл((( Ладно я тогда уже сделал руками и хорошо ))) В след раз снова руками создам колонку )))