gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 23:41:12 25 4
gpt4 key购买 nike

我想使用

删除一个表
//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”,它会起作用,所以我相信我的错误与删除名称存储为变量的表的语法有关。感谢您的帮助。

最佳答案

在 PHP 中,当使用 single quotes 时('),变量不展开。为此使用双引号:

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

也就是说,您不应该再使用已弃用的 mysql_ 函数,而应改用 MySQLi 或 PDO。此外,您对 SQL 注入(inject)持开放态度,但我想您知道如果您使用 $_POST 数据执行 DROP TABLE,而无需任何验证。

关于mysql - 如果表名存储为变量,如何删除 mysql 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34342524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com