如果表名存储为变量,如何删除mysql表?

时间:2015-12-17 19:17:52

标签: mysql

我想使用

删除表格
//A user is choosing the table to drop.
$name = $_POST['name'];
mysql_connect("localhost", "root", "password") or die (mysql_error ());
mysql_select_db("db_name") or die(mysql_error());
mysql_query('DROP TABLE IF EXISTS `$name`') or die(mysql_error());

如果我手动更换" $ name"使用表名,它可以工作,所以我相信我的错误与删除一个名称存储为变量的表的语法有关。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

在PHP中,使用single quotes(')时,不会扩展变量。使用双引号:

mysql_query("DROP TABLE IF EXISTS `$name`") or die(mysql_error());

话虽如此,您不应再使用已弃用的mysql_函数,而是使用MySQLi或PDO。此外,您对SQL注入持开放态度,但我想您知道,如果您使用DROP TABLE数据进行$_POST,则无需进行任何验证。