如何在for循环中将post值转换为大写字母

时间:2014-08-23 08:35:42

标签: php

这是我的保存功能代码。在这里面有一个我想要的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;
    }

4 个答案:

答案 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)

检查strtoupper()

答案 2 :(得分:0)

使用array_map

$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))."', ";    
    }