这是我的保存功能代码。在这里面有一个我想要的for循环 以大写字母转换所有post值。请帮助我。 并且还建议如何更多地保护此功能。 感谢。
function save($table, $fields, $condition = '')
{
$sql = "INSERT INTO $table SET ";
if($condition != '')
$sql = "UPDATE $table SET ";
//print_r($fields);exit;
$table_fields = $this->get_table_fields($table);
foreach($fields as $field=>$value)
{
if(in_array($field,$table_fields))
$sql .= "$field = '".mysql_real_escape_string($value)."', ";
}
$sql = substr($sql, 0 ,-2);
if($condition != '')
$sql .= " WHERE $condition";
//print_r($sql);exit;
$result = mysql_query($sql);
if(mysql_affected_rows())
return true;
else
return false;
}
答案 0 :(得分:1)
简单地将strtoupper()连接到您的值... 就像下面......
foreach($fields as $field=>$value)
{
if(in_array($field,$table_fields))
$sql .= "$field = '".strtoupper(mysql_real_escape_string($value))."', ";
}
答案 1 :(得分:0)
使用strtoupper(your string)
答案 2 :(得分:0)
$upperCased = array_map('strtoupper' $given_array);
例如:
$arr = ['a'=>'alpha', 'b'=>'beta','c'=>'charlie'];
$Arr = array_map('strtoupper',$arr);
var_dump($Arr);
将返回
array (size=3)
'a' => string 'ALPHA' (length=5)
'b' => string 'BETA' (length=4)
'c' => string 'CHARLIE' (length=7)
注意: $arr
和$Arr
不同
答案 3 :(得分:0)
您只需要替换
foreach($fields as $field=>$value)
{
if(in_array($field,$table_fields))
$sql .= "$field = '".mysql_real_escape_string($value)."', ";
}
使用:
foreach($fields as $field=>$value)
{
if(in_array($field,$table_fields))
$sql .= "$field = '".strtoupper(mysql_real_escape_string($value))."', ";
}