messaggio supporto fulltext

ciao, sto provando un codice e in questa porzione ricevo un messaggio di non supporto tabella:

$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;

il messaggio è questo:

The used table type doesn't support FULLTEXT indexes

grazie

inviato 8 anni fa
gabar-el
X 0 X

Gli indici FullText possono essere creati solo su tabelle di tipo MyISAM. Le impostazioni del tuo server MySQL probabilmente portano alla creazione di default di tabelle di tipo InnoDB.

Prova con:

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)

ENGINE=MyISAM

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ricevo un errore di sintassi:

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 'MyISAM )' at line 12

risposto 8 anni fa
gabar-el
X 0 X

Si, ho saltato una parentesi:

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))

ENGINE=MyISAM

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

non son sicuro, io l'avevo alla fine:

$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)
   ENGINE=MyISAM
)
EOS;
risposto 8 anni fa
gabar-el
X 0 X

No, l'ENGINE va specificato fuori dalla parentesi tonda.  :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

se lo metto così:

$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)
)
   ENGINE=MyISAM
EOS;

mi ritrorna questo errore:

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 '', 3)' at line 1

che riguarda questa query:

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

 :-\

risposto 8 anni fa
gabar-el
X 0 X

Il messaggio di errore dice che il problema è vicino alla stringa "3)" ma non mi sembra che in quella INSERT ci sia quella stringa

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

già, ho sbagliato query, è questa:

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

ma non vedo il problema.....

risposto 8 anni fa
gabar-el
X 0 X

manca un apice prima di $adminname

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

cavolo....

grazie...  :bye:

risposto 8 anni fa
gabar-el
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda