如何使用数组参数检查数据库?

时间:2012-07-09 06:08:03

标签: php arrays function parameters

嗨,我有一个数组,我想将一个变量传递给一个函数。

'#\@(.*?)\;#si' =>  'some before text' . retrieveName('$1') . 'some after text,'

function retrieveName($poster_id){
    $sanitized_id = sanitizeIn($poster_id);

    $getname = mysql_query("SELECT * FROM users WHERE userid = '$sanitized_id';") 
                or die(mysql_error());
    $namerow = mysql_fetch_array($getname);
    $exists = mysql_num_rows($getname);

    if($exists == "0"){
      return $sanitized_id;
    } else {
      return $namerow['username'];
    }
}

它应该取$1的值,检查具有该id的用户的数据库,然后返回他们的用户名。但没有参数传递给retrieveName

1 个答案:

答案 0 :(得分:1)

retrieveName函数应为:

function retrieveName($poster_id){
    $sanitized_id = sanitizeIn($poster_id);
    $get_name = mysql_query("SELECT * FROM users WHERE userid = '$sanitized_id';") or die(mysql_error());
    $name_row = mysql_fetch_array($get_name);
    return $name_row['username'];
}

我强烈建议在那里放置一些错误检查,如果找不到ID会怎么样?

编辑:

如果您正在尝试执行“preg_replace模板化”,则该行应显示为:

'#@(.*?);#sie' =>  '"some before text".retrieveName("\1")."some after text"',

'e'在修饰符中执行代码。

这应该改变,例如,“你好,@ lserni;,怎么回事?”用“你好,有些文字之前的文章莱昂纳多塞尔索姆,怎么回事?”。