我找到了一种在pdo查询中使用变量作为表名的方法。
但是,我想知道下面的代码是否安全。
function buildQuery($CheckInput)
{
switch($CheckInput) {
case $CheckInput == 'user':
$TableName = 'user';
break;
case $CheckInput == 'guest':
$TableName = 'guest';
break;
}
$sql = "SELECT * FROM $TableName";
return $sql;
}
函数的用法如下:
if (isset($_POST['DropDownChoice']) AND ($_POST['DropDownChoice'] == 'user' OR $_POST['DropDownChoice'] == 'guest')) {
$sql = buildQuery(htmlspecialchars($_POST['DropDownChoice']));
}
如果 $CheckInput
那就永远不会是真的了 $TableName
将是未定义的。
sql查询将发生什么变化?
我发现所有的例子都不使用默认情况,有什么原因吗?
1条答案
按热度按时间lsmepo6l1#
设置默认值以确保获得表名