只是在使用PDO插入新表时遇到问题.我得到的错误是:
SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在''25500'附近使用正确的语法(第149440行的
idINT(11)NOT NULL AUTO_INCREMENT,dateTIMESTAMP NOT NULL DEFAUL'不存在!
请注意,$ 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();
}
}
Run Code Online (Sandbox Code Playgroud)
它必须是简单的东西,但我不能选择它.
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'"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |