php中SQL语句能不能用占位符代替表的名字?
像这样$query=$dbh->prepare('createtableifnotexists?(idint(11)unsignednotnullauto_increme...
像这样
$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();
但是好像这样不行 到底要怎么做? 展开
$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();
但是好像这样不行 到底要怎么做? 展开
1个回答
展开全部
这样做不行,占位符的用法一般是在字符串处理的函数中的,而不是在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);
这样是比较好理解的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询