2012-12-13 42 views
1

這裏是我的代碼:無法創建MySQL表以「如果不存在」

$STH1000=$DBH->query("CREATE TABLE IF NOT EXISTS '".$dept.$year."' (`ID` INT(255) NOT NULL AUTO_INCREMENT , `URL` VARCHAR(255) NOT NULL , PRIMARY KEY (`ID`)) ") or die "Could not prepare sql statement";

所有我想要做的就是創建一個表,如果$ $部門每年不存在,但方式我現在擁有它,它會引發錯誤。

我相信有一種方法來創建一個表是MySQL返回一個選擇錯誤,但我不知道如何做到這一點。任何幫助將不勝感激。

+1

我很驚訝,沒有人喜歡在串聯變量代換。 –

回答

5
$STH1000=$DBH->query("CREATE TABLE IF NOT EXISTS ".$dept.$year." (`ID` INT(255) NOT NULL AUTO_INCREMENT , `URL` VARCHAR(255) NOT NULL , PRIMARY KEY (`ID`)) ") or die "Could not prepare sql statement"; 

表名稱不得''被關閉(但我在``可以任意關閉)。

1

剛剛從'".$dept.$year."'刪除報價爲".$dept.$year."

您的查詢會是這樣

$STH1000=$DBH->query("CREATE TABLE IF NOT EXISTS ".$dept.$year." (`ID` INT(255) NOT NULL AUTO_INCREMENT , `URL` VARCHAR(255) NOT NULL , PRIMARY KEY (`ID`)) ") or die "Could not prepare sql statement"; 
+0

我不認爲你的更正傳播到你的代碼部分。 –

+0

@LenJaffe亞錯誤我沒有刪除從查詢報價,現在檢查 – Arif

+1

現在看起來不錯。 –