EDIT: I found my mistake.
After follow this tutorial to make a basic add-on that read and writes to a database, I modified it to fit my needs. After changing some of the fields of the database (along with the primary key) in the installer.php AND in the DataWriter.php I attempted to update the add-on by exporting it and then upgrading with the XML file. This results in:
Mysqli prepare error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNSIGNED, PRIMARY KEY (`xbox_site_id`) ) ' at line 7
Here is a snippet of my installer.php:
protected static $table = array(
'createQuery' => 'CREATE TABLE IF NOT EXISTS `xf_xbox_verification` (
`xbox_site_id` INT ( 9 ) NOT NULL,
`xbox_gamertag` VARCHAR (15),
`xbox_veriCode` INT (6) UNSIGNED,
`xbox_xuid` VARCHAR (200),
`xbox_attempts` INT (10) UNSIGNED,
`xbox_date` VARCHAR (100) UNSIGNED,
PRIMARY KEY (`xbox_site_id`)
)
ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;',
'dropQuery' => 'DROP TABLE IF EXISTS `xf_xbox_verification`'
);
And the DataWriter:
protected function _getFields() {
return array(
'xf_xbox_verification' => array(
'xbox_site_id' => array(
'type' => self::TYPE_UINT, 'required' => true
),
'xbox_gamertag' => array(
'type' => self::TYPE_STRING, 'required' => true
),
'xbox_veriCode' => array(
'type' => self::TYPE_UINT, 'required' => true
),
'xbox_xuid' => array(
'type' => self::TYPE_STRING, 'required' => false
),
'xbox_attempts' => array(
'type' => self::TYPE_UINT, 'required' => false
),
'xbox_date' => array(
'type' => self::TYPE_STRING, 'required' => true
),
)
);
}
Can anyone tell me what I need to change or what I did wrong? Thanks.
Mysqli prepare error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNSIGNED, PRIMARY KEY (`xbox_site_id`) ) ' at line 7
- Zend_Db_Statement_Mysqli->_prepare() in Zend/Db/Statement.php at line 115
- Zend_Db_Statement->__construct() in Zend/Db/Adapter/Mysqli.php at line 381
- Zend_Db_Adapter_Mysqli->prepare() in Zend/Db/Adapter/Abstract.php at line 478
- Zend_Db_Adapter_Abstract->query() in XboxVerification/Installer.php at line 21
- XboxVerification_Installer::install()
- call_user_func() in XenForo/Model/AddOn.php at line 215
- XenForo_Model_AddOn->installAddOnXml() in XenForo/Model/AddOn.php at line 169
- XenForo_Model_AddOn->installAddOnXmlFromFile() in XenForo/ControllerAdmin/AddOn.php at line 237
- XenForo_ControllerAdmin_AddOn->actionUpgrade() in XenForo/FrontController.php at line 351
- XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
- XenForo_FrontController->run() in /home/rivalfo1/public_html/admin.php at line 13
Here is a snippet of my installer.php:
protected static $table = array(
'createQuery' => 'CREATE TABLE IF NOT EXISTS `xf_xbox_verification` (
`xbox_site_id` INT ( 9 ) NOT NULL,
`xbox_gamertag` VARCHAR (15),
`xbox_veriCode` INT (6) UNSIGNED,
`xbox_xuid` VARCHAR (200),
`xbox_attempts` INT (10) UNSIGNED,
`xbox_date` VARCHAR (100) UNSIGNED,
PRIMARY KEY (`xbox_site_id`)
)
ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;',
'dropQuery' => 'DROP TABLE IF EXISTS `xf_xbox_verification`'
);
And the DataWriter:
protected function _getFields() {
return array(
'xf_xbox_verification' => array(
'xbox_site_id' => array(
'type' => self::TYPE_UINT, 'required' => true
),
'xbox_gamertag' => array(
'type' => self::TYPE_STRING, 'required' => true
),
'xbox_veriCode' => array(
'type' => self::TYPE_UINT, 'required' => true
),
'xbox_xuid' => array(
'type' => self::TYPE_STRING, 'required' => false
),
'xbox_attempts' => array(
'type' => self::TYPE_UINT, 'required' => false
),
'xbox_date' => array(
'type' => self::TYPE_STRING, 'required' => true
),
)
);
}
Can anyone tell me what I need to change or what I did wrong? Thanks.
Last edited: