2013-10-31 88 views
0

我试图用4个表创建一个数据库。当我运行我的代码时,它会创建第一个表,但不会创建第三个表。这是因为第二个表没有将存储引擎更改为myISAM,但我无法弄清楚为什么它没有这样做。这里是我的代码:SQL数据库问题

<?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, 'Users'), " . 
    "(2, 'Moderator'), " . 
    "(3, 'Administrator')"; 
$result= mysql_query($sql) or 
    die(mysql_error()); 
$sql= <<<EOS 
CREATE TABLE IF NOT EXISTS cms_articles ENGINE = MYISAM (
    article_id int(11) NOT NULL auto_increment, 
    author_id int(11) NOT NULL default '0', 
    is_published tinyint(11) 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 '', 
    password 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= "[email protected]"; 
$adminpass= "graysen7"; 
$adminname= "olle"; 
$sql= "INSERT 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 the initial login information: <br />"; 
echo "<ul><li><strong>Login:</strong> " . $adminemail . "</li><br />"; 
echo "<li><strong>Password:</strong> " . $adminpass . "</li><br />"; 
echo "<a href='login.php'>Login</a> to the site now."; 
echo "</ul></body></html>"; 
    ?> 

任何帮助,不胜感激!

回答

1

据我所知,我的数据库告诉我我是对的,引擎应该在创建定义后提及。试试这个:

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(11) 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 
+0

非常好!这就是我需要的,谢谢! –