trim()函数发出警告

时间:2012-04-14 17:16:39

标签: php

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
  Warning: mysql_fetch_* expects parameter 1 to be resource, boolean given error

我收到了这个警告

Warning: trim() expects parameter 1 to be string, array given in ..

这是我的修剪线。 完整代码用于在字段为空时发送错误。但是,出现此错误表示每个字段都是空的,但只有“本机”字段才是必需的,因此这是我的第二个问题。 谢谢你的帮助!

session_start();
$err = array();


$user_id = intval($_SESSION['user_id']);
// otherwise
if (isset($_POST['doLanguage'])) {
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");

// check if current user is banned
$the_query = sprintf("SELECT COUNT(*) FROM users WHERE `banned` = '0' AND `id` = 
'%d'",   $user_id);
$result = mysql_query($the_query, $link);
$user_check = mysql_num_rows($result);
// user is ok
if ($user_check > 0) {

    // check for empty fields
    foreach ($_POST as $key => $val) {
        $value = trim($val);
        if (empty($value)) {
            $err[] = "ERROR - $key is required";
        }
    }
    // no errors
    if(empty($err)) {
        for($i = 0; $i < count($_POST["other"]); $i++)


            $native = mysql_real_escape_string($_POST['native'][$i]);
            $other = mysql_real_escape_string($_POST['other'][$i]);
            $other_list = mysql_real_escape_string($_POST['other_list'][$i]);
            $other_read = mysql_real_escape_string($_POST['other_read'][$i]);
            $other_spokint = mysql_real_escape_string($_POST['other_spokint'][$i]);
            $other_spokprod = mysql_real_escape_string($_POST['other_spokprod'][$i]);
            $other_writ = mysql_real_escape_string($_POST['other_writ'][$i]);

        // insert into the database
        $the_query = sprintf("INSERT INTO `language`   
(`user_id`,`native`,`other`,`other_list`,`other_read`, `other_spokint`
,`other_spokprod`,`other_writ` ) VALUES ('%d','%s','%s','%s','%s','%s','%s','%s')",
  $user_id,$native,$other,$other_list,$other_read,
$other_spokint,$other_spokprod,$other_writ);

        // query is ok?
        if (mysql_query($the_query, $link) ){

            // redirect to user profile
            header('Location: myaccount.php?id=' . $user_id);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

// check for empty fields
foreach ($_POST as $key => $val) {
    while (is_array($val))
        $val = reset($val);
    if (is_string($val))
        $val = trim($val);
    if (empty($val)) {
        $err[] = "ERROR - $key is required";
    }
}