我需要更新一条1记录,但只需要触摸它的一列,用户通过表单中的输入给出列的名称。 在我的代码中,我通过$_GET接收变量$ii中的列名,我需要sitanxis方面的帮助 $query_nuevanota = mysql_query("UPDATE nota SET ".$ii." = $nom_aux WHERE id=$id"); 或 $query_nuevanota = mysql_query("UPDATE nota SET $ii = $nom_aux WHERE id=$id");
// whitelist of column names which can be accepted via user input
$column_whitelist = ['col1', 'col2', 'col3'];
if (!in_array($_GET['col_name'], $column_whitelist)) {
// do your error handling
} else {
$ii = $_GET['col_name'];
// prepare your SQL query
$stmt = $pdo->prepare("UPDATE nota SET `$ii` = ? WHERE id = ?");
// pass in the variables to be bound to the placeholders in
// the query and execute it
$stmt->execute([$nom_aux, $id]);
}
$column_whitelist = [
1 => 'my_table_col_1',
2 => 'my_table_col_2',
3 => 'my_table_col_3'
];
if (isset($column_whitelist[(int)$_GET['col_name']])) {
$ii = $column_whitelist[(int)$_GET['col_name']];
// prepare your SQL query
$stmt = $pdo->prepare("UPDATE nota SET `$ii` = ? WHERE id = ?");
// and so on
}
1条答案
按热度按时间hl0ma9xz1#
这是一个粗略的示例,但应该可以给予您对需要执行的操作有所了解:
或者,您可以为用户提供一个select元素来选择他们要搜索的列:
然后在你的PHP中做一些类似的事情: