我已经按照语法指南来创建表格,但是我一直都会遇到语法错误。有人可以帮助我吗?
$createQuery = sprintf("CREATE TABLE %s(message_ID INT NOT NULL AUTO_INCREMENT, message TEXT, sender TEXT, recipient TEXT, PRIMARY KEY( message_ID )) ENGINE=MyISAM;",$tablename);
$createResult = mysqli_query($connect, $createQuery);
在这种情况下, $ tablename是1-3 答案 0 :(得分:2)
你需要像这样转义你的表名
$tablename = '`1-3`';
答案 1 :(得分:2)
尝试向%s
添加返回标记:
$createQuery = sprintf("CREATE TABLE `%s` (message_ID INT NOT NULL AUTO_INCREMENT, message TEXT, sender TEXT, recipient TEXT, PRIMARY KEY( message_ID )) ENGINE=MyISAM;",$tablename);
$createResult = mysqli_query($connect, $createQuery);
此外,您的原始代码旁边有%s
,位于括号(
旁边。技术上有后退,这应该不是问题,但你应该养成在处理MySQL查询时在事物之间添加空格的习惯。
也就是说,只需将sprintf()
直接放入代码中,您也可以在没有$tablename
的情况下获得相同的结果,因为双引号允许字符串替换:
$createQuery = "CREATE TABLE `$tablename` (message_ID INT NOT NULL AUTO_INCREMENT, message TEXT, sender TEXT, recipient TEXT, PRIMARY KEY( message_ID )) ENGINE=MyISAM;";
$createResult = mysqli_query($connect, $createQuery);