2013-04-24 3 views
1

PDO를 사용하여 새 테이블을 삽입하는 데 문제가 있습니다. 나는 점점 오전 오류는 다음과 같습니다PDO 만들기 테이블이 작동하지 않습니다.

SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1064 당신은 당신의 SQL 구문에 오류가; 149440 '는'25500 '을 근처에 사용할 수있는 권리 구문에 대한 귀하의 MySQL 서버 버전에 해당하는 설명서를 확인 (id INT (11) NOT NULL AUTO_INCREMENT, date TIMESTAMP NOT NULL가 기본으로' 라인에 존재하지 않습니다!

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(); 
} 
} 

그것은 간단한 일해야합니다. 그 $ ID가 테이블 이름입니다 유의하시기 바랍니다 난 그냥 캔트를 선택하십시오.

답변

5

TABLENAME과 함께 포장하지 말아야 작은 따옴표는 문자열 리터럴이 아니므로. 역 따옴표로 작은 따옴표를 변경해보십시오.

$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

+1

당신은 'D : 환영합니다. –

관련 문제