Peter Jay Salzman wrote:
> Hi all,
>
> I know very little about mysql and sqlite - I've only played
> around a little bit with databases, so I'm a newbie in this area.
>
> There's a blogger called Wheatblog that I've been trying to
> convert from mysql to sqlite so I don't have to run a full
> RDMBS deamon on my underpowered machine for just a single
> blog program.
>
> I think I've successfully replaced all the mysql calls with
> wrapper functions that use sqlite functions. There's just a
> few bits left that are causing errors, and I'm having trouble fixing
> them.
>
> Here's the bit of mysql sql that creates the database used by
> Wheatblog. It came in the Wheatblog zip file. I'm surprised
> to see the accent grave (`):
>
>
> CREATE TABLE `wheatblog_categories` (
> `id` int(11) NOT NULL auto_increment,
> `category` varchar(30) NOT NULL default '',
> PRIMARY KEY (`id`)
> ) TYPE=MyISAM;
>
> CREATE TABLE `wheatblog_comments` (
> `id` int(11) NOT NULL auto_increment,
> `comment_author_name` varchar(100) NOT NULL default '',
> `comment_author_email` varchar(100) NOT NULL default '',
> `comment_author_url` varchar(100) NOT NULL default '',
> `comment_body` mediumtext NOT NULL,
> `post_id` int(11) NOT NULL default '0',
> `comment_month` int(2) NOT NULL default '0',
> `comment_date` int(2) NOT NULL default '0',
> `comment_year` int(4) NOT NULL default '0',
> PRIMARY KEY (`id`)
> ) TYPE=MyISAM;
>
> CREATE TABLE `wheatblog_posts` (
> `id` int(11) NOT NULL auto_increment,
> `day` varchar(10) default '',
> `month` int(2) NOT NULL default '0',
> `date` int(2) NOT NULL default '0',
> `year` int(4) NOT NULL default '0',
> `category` int(1) NOT NULL default '1',
> `showpref` tinyint(1) default '1',
> `body` mediumtext NOT NULL,
> `title` varchar(100) default '',
> `number_of_comments` int(11) NOT NULL default '0', PRIMARY
> KEY (`id`) ) TYPE=MyISAM;
>
> INSERT INTO `wheatblog_categories` (id, category)
> values (null, 'unfiled');
>
>
> And here's how I've tried to implement it on sqlite using
> PHP. Note that
> DB_query() is a wrapper for sqlite_query(). I've changed the
> "auto_increment" to "INTEGER PRIMARY KEY", as the FAQ said.
> I'm very new to SQL, but I guess "INTEGER PRIMARY KEY" and
> "NOT NULL" aren't separated by commas?
>
>
> function Create_Wheatblog_Database( $db )
> {
> $cmd =
> "CREATE TABLE 'wheatblog_categories' (
> 'id' INTEGER PRIMARY KEY NOT NULL,
> 'category' varchar(30) NOT NULL default '',
> ) TYPE=MyISAM;"; <-------
>
> echo "<p>$cmd</p>";
> DB_query($cmd, $db);
>
>
> $cmd =
> "CREATE TABLE 'wheatblog_comments' (
> 'id' INTEGER PRIMARY KEY NOT NULL,
> 'comment_author_name' varchar(100) NOT NULL default '',
> 'comment_author_email' varchar(100) NOT NULL default '',
> 'comment_author_url' varchar(100) NOT NULL default '',
> 'comment_body' mediumtext NOT NULL,
> 'post_id' int(11) NOT NULL default '0',
> 'comment_month' int(2) NOT NULL default '0',
> 'comment_date' int(2) NOT NULL default '0',
> 'comment_year' int(4) NOT NULL default '0', )
> TYPE=MyISAM;";
>
> DB_query($cmd, $db);
>
>
> $cmd =
> "CREATE TABLE 'wheatblog_posts' (
> 'id' INTEGER PRIMARY KEY NOT NULL,
> 'day' varchar(10) default '',
> 'month' int(2) NOT NULL default '0',
> 'date' int(2) NOT NULL default '0',
> 'year' int(4) NOT NULL default '0',
> 'category' int(1) NOT NULL default '1',
> 'showpref' tinyint(1) default '1',
> 'body' mediumtext NOT NULL,
> 'title' varchar(100) default '',
> 'number_of_comments' int(11) NOT NULL default '0', )
> TYPE=MyISAM;";
>
> DB_query($cmd, $db);
>
>
> $cmd =
> "INSERT INTO 'wheatblog_categories' (id, category)
> values (null, 'unfiled');";
>
> DB_query($cmd, $db);
>
> }
>
>
> It appears that the error is a "syntax error" near where my arrow
> (<------) is. Can someone throw some charity my way? Is there
> anything obviously
> wrong here?
>
> Thanks,
> Pete
you might want to make changes along the lines of:
CREATE TABLE `wheatblog_categories` (
`id` int(11) NOT NULL auto_increment,
`category` varchar(30) NOT NULL default '',
PRIMARY KEY (`id`)
)
to
CREATE TABLE wheatblog_categories (
id int(11) NOT NULL auto_increment,
category varchar(30) NOT NULL default '',
PRIMARY KEY (id)
)
reid