2013-10-31 5 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

우수! 그게 내가 필요한 것입니다, 감사합니다! –