这可能吗?我希望能够仅选择我在 html 表单中指定的列,但我不知道如何执行此操作。我搜索了很长一段时间,但没有找到符合我想法的东西。
任何帮助将不胜感激。
echo "<select name='test'><option value='column1'>Column1</option></select>"
echo "<input type='submit' name='grafiek' value='Maak grafiek'>";
if(isset($_POST['checkvakje']) && $_POST['test'] && $_POST['grafiek']) {
$tijd = $_POST['checkvakje'];
foreach($tijd as $time) {
try {
$stmt = $pdo->prepare("SELECT [the column i selected] FROM statistieken WHERE tijd = :tijd AND poortid = :poort");
$stmt->execute(array(":tijd" => $time, ":poort" => $poort));
if($stmt->rowCount() > 0) {
while($row = $stmt->fetch()) {
echo "<tr>";
echo "<td>".$row['column i selected']."</td>";
echo "</tr>";
}
}
}
catch(PDOexception $e) {
echo "Query ging fout: " . $e->getMessage() ."";
}
}
}
最佳答案
不通过参数绑定(bind)。
知道列名称后,您必须验证输入是否与白名单匹配,这样就不会出现错误,更重要的是 - 它是安全的。
例如:
$allowedColumns = ['foo', 'bar', 'baz'];
if (in_array($_POST['column'], $allowedColumns, true)) {
$column = $_POST['column'];
} else {
// Error: Invalid input
}
$sql = "SELECT {$column} FROM dummy WHERE whatever = 'example'";
关于php - 是否可以从输入类型的结果中选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44133901/