За последние 24 часа нас посетил 17731 программист и 1624 робота. Сейчас ищут 1340 программистов ...

Не создается поле в мускуле!

Тема в разделе "Сделайте за меня", создана пользователем turber, 18 ноя 2014.

  1. turber

    turber Новичок

    С нами с:
    27 ноя 2013
    Сообщения:
    54
    Симпатии:
    0
    Привет! Скрипт создает поля в мускул! Но он НЕ добавляет `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();
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    как ругается? или создает таблицу без этого поля?
     
  3. turber

    turber Новичок

    С нами с:
    27 ноя 2013
    Сообщения:
    54
    Симпатии:
    0
    Просто не создает! (((
    Создает ровно 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,
     
  4. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    $installer->run замени на echo и покажи какой запрос формируется
     
  5. turber

    turber Новичок

    С нами с:
    27 ноя 2013
    Сообщения:
    54
    Симпатии:
    0
    Это скрипт в группе модуля. То есть самостоятельно я его не могу подключить к мускулу! Или надо в нем подключение сделать (пароль-бд-юзер) а я не умею


    Просто изначально модуль не работал по причине
    a:5:{i:0;s:85:"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'partner_id' in 'where clause'";i

    и вот когда вручную сделал все заработало! Но вручную это не по правилам
     
  6. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    замени $installer->run на php.net/manual/ru/function.file-put-contents.php, чтобы получить sql запрос который формирует скрипт
     
  7. turber

    turber Новичок

    С нами с:
    27 ноя 2013
    Сообщения:
    54
    Симпатии:
    0
    На что заменить? На ссылку? o_O
     
  8. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    покажи содержимое файла debug.sql

    Код (PHP):
    1. $sql = "
    2.  
    3. CREATE TABLE {$this->getTable('marketplace_partnergroup')} (
    4. `group_id` int(11) unsigned NOT NULL auto_increment,
    5. `group_name` varchar(255) NOT NULL default '',
    6. `group_code` varchar(255) NOT NULL default '',
    7. `no_of_products` int(6) NOT NULL,
    8. `time_periods` int(11) NOT NULL,
    9. `fee_amount` decimal(6,2) NOT NULL,
    10. `status` smallint(6) NOT NULL default '0',
    11. `created_time` datetime NULL,
    12. `update_time` datetime NULL,
    13. PRIMARY KEY (`group_id`)
    14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    15.  
    16. -- DROP TABLE IF EXISTS {$this->getTable('marketplace_partnertype')};
    17. CREATE TABLE {$this->getTable('marketplace_partnertype')} (
    18. `index_id` int(11) unsigned NOT NULL auto_increment,
    19. `partner_id` int(11) NOT NULL,
    20. `type` varchar(255) NOT NULL,
    21. `no_of_products` int(11) NOT NULL,
    22. `transaction_id` varchar(255) NOT NULL,
    23. `transaction_email` varchar(255) NOT NULL,
    24. `ipn_transaction_id` varchar(255) NOT NULL,
    25. `transaction_date` datetime NOT NULL,
    26. `expiry_date` datetime NOT NULL,
    27. `transaction_status` varchar(255) NOT NULL,
    28. PRIMARY KEY (`index_id`)
    29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    30.  
    31. ";
    32.  
    33. file_put_contents('debug.sql', $sql, FILE_APPEND);
    34.  
     
  9. turber

    turber Новичок

    С нами с:
    27 ноя 2013
    Сообщения:
    54
    Симпатии:
    0

    К сожалению файл debug.sql не создается! Тупо запускаю - белый экран и все
     
  10. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    display_errors включён?
    покажи весь файл, который ты запускаешь
     
  11. turber

    turber Новичок

    С нами с:
    27 ноя 2013
    Сообщения:
    54
    Симпатии:
    0

    <?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);
     
  12. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    раздел сделай за меня самый весёлый, развивает интуицию и телепатию, почитай вот это http://phpfaq.ru/debug

    Вот это попробуй запусти

    Код (PHP):
    1. <?php
    2.  
    3. $installer = $this;
    4.  
    5. $installer->startSetup();
    6.  
    7. $sql = "
    8.  
    9. CREATE TABLE {$this->getTable('marketplace_partnergroup')} (
    10. `group_id` int(11) unsigned NOT NULL auto_increment,
    11. `group_name` varchar(255) NOT NULL default '',
    12. `group_code` varchar(255) NOT NULL default '',
    13. `no_of_products` int(6) NOT NULL,
    14. `time_periods` int(11) NOT NULL,
    15. `fee_amount` decimal(6,2) NOT NULL,
    16. `status` smallint(6) NOT NULL default '0',
    17. `created_time` datetime NULL,
    18. `update_time` datetime NULL,
    19. PRIMARY KEY (`group_id`)
    20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    21.  
    22. -- DROP TABLE IF EXISTS {$this->getTable('marketplace_partnertype')};
    23. CREATE TABLE {$this->getTable('marketplace_partnertype')} (
    24. `index_id` int(11) unsigned NOT NULL auto_increment,
    25. `partner_id` int(11) NOT NULL,
    26. `type` varchar(255) NOT NULL,
    27. `no_of_products` int(11) NOT NULL,
    28. `transaction_id` varchar(255) NOT NULL,
    29. `transaction_email` varchar(255) NOT NULL,
    30. `ipn_transaction_id` varchar(255) NOT NULL,
    31. `transaction_date` datetime NOT NULL,
    32. `expiry_date` datetime NOT NULL,
    33. `transaction_status` varchar(255) NOT NULL,
    34. PRIMARY KEY (`index_id`)
    35. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    36.  
    37. ";
    38.  
    39. file_put_contents('debug.sql', $sql, FILE_APPEND);
    40. $installer->run($sql);
    41. $installer->endSetup();
    42.  
     
  13. turber

    turber Новичок

    С нами с:
    27 ноя 2013
    Сообщения:
    54
    Симпатии:
    0

    Спасибо большое за помощь! Но не создается файл((( Ладно я тогда уже сделал руками и хорошо ))) В след раз снова руками создам колонку )))