PHP 用参数设置字段名
PHP set field-name with parameter
在我的php-脚本中,我在sql-服务器上执行。一切正常,但是:我不仅有变量值,还有变量字段名。因此,出于安全原因,我想将字段名称作为参数传递。
sql 会是
$sql = "UPDATE STA_Kunden
SET ? = ?
WHERE (KUN_KundeNo = ?)";
$params = array($field, $value, $select);
但是field-name不能作为参数。因此,如果有人乱用字段名,则可能会出现 sql 注入。
我怎样才能设置这个安全?
谢谢
最大值
您必须将 $field 的值列入白名单并将其连接到查询中:
if (in_array($field, array('allowed_field_1', 'allowed_field_2'))) {
$sql = "UPDATE STA_Kunden SET " . $field . " = ? WHERE (KUN_KundeNo = ?)";
$params = array($value, $select);
}
在我的php-脚本中,我在sql-服务器上执行。一切正常,但是:我不仅有变量值,还有变量字段名。因此,出于安全原因,我想将字段名称作为参数传递。
sql 会是
$sql = "UPDATE STA_Kunden
SET ? = ?
WHERE (KUN_KundeNo = ?)";
$params = array($field, $value, $select);
但是field-name不能作为参数。因此,如果有人乱用字段名,则可能会出现 sql 注入。 我怎样才能设置这个安全?
谢谢 最大值
您必须将 $field 的值列入白名单并将其连接到查询中:
if (in_array($field, array('allowed_field_1', 'allowed_field_2'))) {
$sql = "UPDATE STA_Kunden SET " . $field . " = ? WHERE (KUN_KundeNo = ?)";
$params = array($value, $select);
}