我正在处理应该能够使用$variables
来处理多个表的函数。
但是我收到语法错误..
有效的代码。
$query = "INSERT INTO table_com (tableID, komNAME, komDATE, komHTML, komSTATUS)
VALUES ('$pID','$name','$time','$kom','$status')";
if(!$mysqli->query($query)) { die($mysqli->error); }
和不
的代码$sID = 'table':
$query = "INSERT INTO '$sID'_com ('$sID'ID, komNAME, komDATE, komHTML, komSTATUS)
VALUES ('$pID','$name','$time','$kom','$status')";
if(!$mysqli->query($query)) { die($mysqli->error); }
只有表格和列$variables
不起作用..
这是my_sql_error:
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near ''diy'_com ('diy'ID,
komNAME, komDATE, komHTML, komSTATUS) VALUES ('1','cjkm,','1' at line 1
有没有解决这个问题的方法?
答案 0 :(得分:0)
更改
$query = "INSERT INTO '$sID'_com ('$sID'ID, komNAME, komDATE, komHTML, komSTATUS)
VALUES ('$pID','$name','$time','$kom','$status')";
到
$query = "INSERT INTO `{$sID}_com` ({$sID}ID, komNAME, komDATE, komHTML, komSTATUS)
VALUES ('$pID','$name','$time','$kom','$status')";
这种方式$sID
将从_com
单独解析。
我做了一个例子here。
代码:
$sID = 'something';
echo "INSERT INTO `{$sID}_com` ({$sID}ID, komNAME, komDATE, komHTML, komSTATUS)
VALUES ('pID','name','time','kom','status')";
结果:
INSERT INTO `something_com` (somethingID, komNAME, komDATE, komHTML, komSTATUS) VALUES ('pID','name','time','kom','status')
请注意我为解析器删除了变量。
答案 1 :(得分:0)
您对数据库设计的想法是错误的。 $ sID应该是一个表中的字段,而不是表名。
请将您的多表设置重新设计为一个表,其中$ sID用于标识特定类别。它不会为你节省一天,而是几周的痛苦。
答案 2 :(得分:0)
检查脚本中是否有与问题中相同的错误:
$sID = 'table':
// Use a ; instead of a :