2016-10-27 11 views
0

データベースに動的テーブルを作成する際に問題が発生しました。テーブルがすでにデータベースに存在する場合は、新しいテーブルを作成すべきではありません。MySQLでテーブルを動的にチェックして作成する

if(mysqli_num_rows(mysqli_query("SHOW TABLES LIKE abc")) == 1){ 
    echo "Already Exit";  
} else { 
    //echo "not exit"; 
    $sql="CREATE TABLE `decoration`.`newtable` (`id` INT NOT NULL AUTO_INCREMENT ,`company_id` VARCHAR(20) NOT NULL ,`list_name` VARCHAR(50) NOT NULL ,`created` INT NOT NULL ,`modified` INT NOT NULL ,`status` INT NOT NULL ,PRIMARY KEY ( `id`)) ENGINE = INNODB"; 
    if ($con->mysqli_query($sql)){ 
     echo "created"; 
    } else { 
     echo "not created"; 
    } 
} 
+0

私は人々がここであなたの質問を理解するのに苦労すると思います。何が問題なのですか、達成しようとしていることは何ですか? – samiles

+0

http://dev.mysql.com/doc/refman/5.7/en/show-tables.html –

答えて

0

あなたは、テーブルが存在するか、テーブルがデータベースに存在する場合、それは新しいものを作成しませんチェックするクエリ以下

CREATE TABLE IF NOT EXISTS `schema`.`Employee` (
`idEmployee` VARCHAR(45) NOT NULL , 
`Name` VARCHAR(255) NULL , 
`idAddresses` VARCHAR(45) NULL , 
PRIMARY KEY (`idEmployee`) , 
CONSTRAINT `fkEmployee_Addresses` 
FOREIGN KEY `fkEmployee_Addresses` (`idAddresses`) 
REFERENCES `schema`.`Addresses` (`idAddresses`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_bin 

IF NOT EXISTSで行くことができます。

参考:これは役立つhttp://dev.mysql.com/doc/refman/5.7/en/create-table.html

願っています!

関連する問題