因此,我想将一些数据插入到MySQL表中,其中放入数据的表名是PHP变量。
这样的事情:
$tablename = "databasetable";
$insert = mysql_query(
"INSERT INTO '".$tablename."' (column1, col2)
VALUES ('Blah', 'Blah')
");
但那当然不起作用,所以我不知道该怎么做。 顺便说一下,我是PHP和StackOverflow的新手。
答案 0 :(得分:2)
从表名变量周围删除单引号,它将起作用:
$tablename = "databasetable";
$insert = mysql_query(
"INSERT INTO ".$tablename." (column1, col2) VALUES ('Blah', 'Blah')");
答案 1 :(得分:1)
怎么样:
$tablename = "databasetable";
$insert = mysql_query("INSERT INTO ".$tablename." (column1, col2) VALUES ('Blah', 'Blah')");
即,没有简单的引号,你就是把表名放在一边。
或者,正如您使用的是双引号字符串,这意味着要插入变量:
$tablename = "databasetable";
$insert = mysql_query("INSERT INTO $tablename (column1, col2) VALUES ('Blah', 'Blah')");
作为旁注,在这两种情况下,您必须确定$tablename
不包含任何恶意数据!
答案 2 :(得分:0)
我的答案与Doug的类似,虽然我会在表名周围的查询中使用'back-ticks'来区分它作为表格,以进一步防止恶意注入的可能性......
E.g。
$tablename = "databasetable";
$insert = mysql_query("INSERT INTO `{$tablename}` (column1, col2)
VALUES ('Blah', 'Blah')"
);