PHP - 在Select语句中使用PHP变量选择SQL表

时间:2018-05-03 00:53:33

标签: php sql variables select

如何使用变量来选择SQL表?

$sselect = $_GET['series'];
$episodes = mysqli_query($conn, "SELECT * FROM '$sselect'") or die(mysqli_error());

2 个答案:

答案 0 :(得分:0)

为什么不使用简单的concat?

$sselect = $_GET['series']; $episodes = mysqli_query($conn, "SELECT * FROM ".$sselect) or die(mysqli_error());

答案 1 :(得分:0)

试试这个: 这应该工作。感谢@Phil,他指出表名应该包含在后面的标记中。我已经更新了我的答案。额外的单引号用于完成MYSQL查询。

$sselect = $_GET['series'];
$episodes = mysqli_query($conn, 'SELECT * FROM `'.$sselect.'`') or die(mysqli_error());    

<强>更新

Phil所说的是,如果您使用$ _GET变量,则可以使用不同的表名轻松替换该URL,从而留下巨大的安全风险。例如,假设我有一个名为users的表,但我希望$_GET变量为以下之一:carspencils或{ {1}}。

你想要的是表单返回这样的URL:

colors

但用户可以更改数据来代表:

www.example.com/index.php?series=pencils

允许用户/攻击者访问机密表。这不是一个好习惯,Phil建议您在表结构中更改模式,这样用户就不会选择表名。