2013-04-24 73 views
1

僅僅在使用PDO插入新表格時遇到困難。我得到的錯誤是:PDO創建表格不起作用

SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤 ;檢查對應於您 MySQL服務器版本使用附近的'25500' 正確的語法手冊(id INT(11)NOT NULL AUTO_INCREMENT,date TIMESTAMP NOT NULL DEFAUL」在 線149440不存在!

請注意,$ id是表名。

function createTable($dbh, $id, $description) 
{ 
try { 
$stmt = "CREATE TABLE '$id' (
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , 
`prodtitle` VARCHAR(50) NOT NULL , 
`unitsize` VARCHAR(10) NOT NULL , 
`price` VARCHAR(10) NOT NULL , 
`wasprice` VARCHAR(10) NOT NULL , 
`specprice` VARCHAR(10) NOT NULL , 
PRIMARY KEY (`id`)) COMMENT = '$description'"; 

if($dbh->exec($stmt) !== false) echo 'The sites table is created'; 
} 
catch (PDOException $e) { echo $e->getMessage(); 
} 
} 

現在一定是簡單的,但我只是不能接它。

回答

5

表名不應與包裝單引號,因爲它不是字符串文字。嘗試改變單引號反向,

$stmt = "CREATE TABLE `$id` (
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , 
`prodtitle` VARCHAR(50) NOT NULL , 
`unitsize` VARCHAR(10) NOT NULL , 
`price` VARCHAR(10) NOT NULL , 
`wasprice` VARCHAR(10) NOT NULL , 
`specprice` VARCHAR(10) NOT NULL , 
PRIMARY KEY (`id`)) COMMENT = '$description'" 
+1

謝謝!爲我節省了很多痛苦! – DrDog 2013-04-24 02:04:53

+1

不客氣':D' – 2013-04-24 02:05:04