当参数在参数名称中包含%时,会更新数据库表中的值

时间:2013-12-06 14:29:54

标签: php sql sql-server

我有一个php网站,其中包含一个页面,您可以在其中更新数据库表中包含的各种参数的值。 最近系统管理员在参数名称的开头添加了一些包含%百分号的新参数,而使用$ _REQUEST superglobal的更新函数只更新包含字母字符的原始参数,而新参数根本不更新。

我需要知道如何更改我的代码以支持更新表中的所有参数,无论名称如何。

参数示例如下

2 个答案:

答案 0 :(得分:1)

括在括号中:

$paramname = str_replace('%', '[%]', $paramname);

或者使用escape:

$paramname = str_replace('%', '\%', $paramname);
$query = "UPDATE Parameters SET Value = '$value' WHERE ParamName = '$paramname' ESCAPE '\'";

答案 1 :(得分:-1)

您必须在将数据存储到MySQL之前转义数据,您可以尝试使用:

http://php.net/manual/en/function.mysql-real-escape-string.php