Jump to content

"The used table type doesn't support FULLTEXT indexes"


newbreed65

Recommended Posts

Hi everyone

I’m working through a php, mysql and apache book for beginners and I’m up to a chapter were I’m going to make a CMS. The problem is when I try adding the tables I’ve been asked to I get the message “The used table type doesn't support FULLTEXT indexes”. I have done abit of research and one things that I have found is that the tables should be MyiSAM which from what I read they already are by default …am I missing something?????

 

Heres the sample code to add the tables that I use

 

<?php
require_once 'conn.php';

$sql = <<<EOS
CREATE TABLE IF NOT EXISTS cms_access_levels (
  access_lvl tinyint(4) NOT NULL auto_increment,
  access_name varchar(50) NOT NULL default '',
  PRIMARY KEY (access_lvl)
)
EOS;
$result = mysql_query($sql) 
  or die(mysql_error());

$sql = "INSERT IGNORE INTO cms_access_levels " .
       "VALUES (1,'User'), " .
       "(2,'Moderator'), " .
       "(3,'Administrator')";
$result = mysql_query($sql) 
  or die(mysql_error());

$sql = <<<EOS
CREATE TABLE IF NOT EXISTS cms_articles (
  article_id int(11) NOT NULL auto_increment,
  author_id int(11) NOT NULL default '0',
  is_published tinyint(1) NOT NULL default '0',
  date_submitted datetime NOT NULL default '0000-00-00 00:00:00',
  date_published datetime NOT NULL default '0000-00-00 00:00:00',
  title varchar(255) NOT NULL default '',
  body mediumtext NOT NULL,
  PRIMARY KEY (article_id),
  KEY IdxArticle (author_id,date_submitted),
  FULLTEXT KEY IdxText (title,body)
)
EOS;
$result = mysql_query($sql) 
  or die(mysql_error());

$sql = <<<EOS
CREATE TABLE IF NOT EXISTS cms_comments (
  comment_id int(11) NOT NULL auto_increment,
  article_id int(11) NOT NULL default '0',
  comment_date datetime NOT NULL default '0000-00-00 00:00:00',
  comment_user int(11) NOT NULL default '0',
  comment text NOT NULL,
  PRIMARY KEY (comment_id),
  KEY IdxComment (article_id)
)
EOS;
$result = mysql_query($sql) 
  or die(mysql_error());

$sql = <<<EOS
CREATE TABLE IF NOT EXISTS cms_users (
  user_id int(11) NOT NULL auto_increment,
  email varchar(255) NOT NULL default '',
  passwd varchar(50) NOT NULL default '',
  name varchar(100) NOT NULL default '',
  access_lvl tinyint(4) NOT NULL default '1',
  PRIMARY KEY (user_id),
  UNIQUE KEY uniq_email (email)
)
EOS;
$result = mysql_query($sql) 
  or die(mysql_error());

$adminemail = "admin@yoursite.com";
$adminpass = "admin";
$adminname = "Admin";

$sql = "INSERT IGNORE INTO cms_users " .
       "VALUES (NULL, '$adminemail', '$adminpass', '$adminname', 3)";
$result = mysql_query($sql) 
  or die(mysql_error());

echo "<html><head><title>CMS Tables Created</title></head><body>";
echo "CMS Tables created. Here is your initial login information:\n";
echo "<ul><li><strong>login</strong>: " . $adminemail . "</li>\n";
echo "<li><strong>password</strong>: " . $adminpass . "</li></ul>\n";
echo "<a href=\"login.php\">Login</a> to the site now.";
echo "</body></html>"
?>

Link to comment
Share on other sites

MyISAM is faster for selecting in general, but it does have it's downsides.

 

 

MyISAM retrieves more quickly, but changes/adds more slowly.

 

 

With InnoDB, when part of a table is updated, only the effected rows are changed, but with MyISAM, the entire table is locked.

 

 

 

Just google "MyISAM v InnoDB" if you want to know more or get a better explanation.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.