将变量插入到从PHP变量名称中选择的表中

时间:2009-09-24 03:40:13

标签: php mysql insert

因此,我想将一些数据插入到MySQL表中,其中放入数据的表名是PHP变量。

这样的事情:

$tablename = "databasetable";

$insert = mysql_query(
"INSERT INTO '".$tablename."' (column1, col2) 
VALUES ('Blah', 'Blah')
");

但那当然不起作用,所以我不知道该怎么做。 顺便说一下,我是PHP和StackOverflow的新手。

3 个答案:

答案 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')"
                     );
相关问题