Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.
[Solved] Add a column to a table
TasteLikeWater
New
Hi,
I am new to Vanilla. I made small hacks for 'Viscacha' before. Creating Addons for Vanilla is the first time I get in touch with an Addon-system.
Now there is one problem: I want to add a column to a table. The query is easy but Vanilla does not do what I want it to do:
My first idea was to make it like that:
public function Setup() {
$query = mysql_query("ALTER TABLE `gdn_discussion` ADD `Visible` BOOLEAN NOT NULL DEFAULT '1' AFTER `Sink`");
if(!($query)) {
die("Fatal Error: ".mysql_error());
}
}
When I enable the Addon, the script is fired and $query is true. But it does not add a Visible column to the gdn_discussion table.
I searched for an alternative and I found something like that
$db->sql_query($sql)
It does not work either. Am I too stupid to read the (fucking) manual? Am I too stupid to use an Addon system? Am I too stupid to use PHP?
Thanks for any help!
Edit: Not answered: I failed to click the right button.
I am new to Vanilla. I made small hacks for 'Viscacha' before. Creating Addons for Vanilla is the first time I get in touch with an Addon-system.
Now there is one problem: I want to add a column to a table. The query is easy but Vanilla does not do what I want it to do:
My first idea was to make it like that:
public function Setup() {
$query = mysql_query("ALTER TABLE `gdn_discussion` ADD `Visible` BOOLEAN NOT NULL DEFAULT '1' AFTER `Sink`");
if(!($query)) {
die("Fatal Error: ".mysql_error());
}
}
When I enable the Addon, the script is fired and $query is true. But it does not add a Visible column to the gdn_discussion table.
I searched for an alternative and I found something like that
$db->sql_query($sql)
It does not work either. Am I too stupid to read the (fucking) manual? Am I too stupid to use an Addon system? Am I too stupid to use PHP?
Thanks for any help!
Edit: Not answered: I failed to click the right button.
Tagged:
0
Best Answer
-
UnderDog MVPif you enter the query into phpMyAdmin does it add a column to the table or does it fail there too? Maybe it's something with the table prefix.
There was an error rendering this rich post.
0
Answers
There was an error rendering this rich post.
Mysterious: Now the Vanilla Addon-Management shows me an error, that there is no database selected. I will try to fix that.
Edit: Now I tried this thing:
Gdn::Structure()
->Table('test')
->PrimaryKey('ExampleID')
->Column('Name', 'varchar(255)')
->Column('Type', 'varchar(128)')
->Column('Size', 'int(11)')
->Column('InsertUserID', 'int(11)')
->Column('DateInserted', 'datetime')
->Column('ForeignID', 'int(11)', TRUE)
->Column('ForeignTable', 'varchar(24)', TRUE)
->Set(FALSE, FALSE);
The test table (with prefix gdn_) was created successfully. Now I am looking for a function in the Gdn class which can add columns. I followed some calls and recently I am in the factory class. I think I took the wrong path to the solution, didn't I?
Oh, now I am at the mysql_structure-class. I think I am in touch with the solution. I think I can do it alone. Thanks for your help, though.
Now I fixed the problem using this code:
Gdn::Structure()
->Table('Discussion')
->Column('Visible', array('yes', 'no'), 'yes')
->Set();
Gdn::Structure()
->Table('Comment')
->Column('Visible', array('yes', 'no'), 'yes')
->Set();
I do not know why it did not work before.