php中SQL语句能不能用占位符代替表的名字?

像这样
$query = $dbh->prepare('create table if not exists ?(id int(11) unsigned not null auto_increment primary key,user varchar(255) not null,content text not null,ctime datetime)');
$query->bindValue(1,$user."and".$top,PDO::PARAM_STR);
$query->execute();
但是好像这样不行 到底要怎么做?

这样做不行,占位符的用法一般是在字符串处理的函数中的,而不是在prepare这个函数中。

建议你先做一个字符串处理,将占位符用类似“[strKey]”这样的字符标签占位,然后再去替换这个标签(用str_replace函数)。

@str='create table if not exists [TableName](id int(11) unsigned not null auto_increment primary key,user varchar(255) not null,content text not null,ctime datetime)';
@str=str_replace("[TableName]","myTableName",@str);

这样是比较好理解的。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答