0
嗨,我有一个数组,我想将一个变量传递给一个函数。如何用数组参数检查数据库?
'#\@(.*?)\;#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
你是完全正确的!我编辑了我原来的帖子,并做了一些修改。新问题是它没有找到用户,但是当它由于0行而返回sanitized_id时,这是正确的ID?我尝试回应它,它给“1美元”。有任何想法吗? – Mike 2012-07-09 06:45:53
代码看起来是正确的。如果您没有其他调试方法,请尝试添加“die(”,我将poster_id作为'$ poster_id'!“);”作为retrieveName的第一行。这应该告诉你实际传递给retrieveName的内容:我怀疑那个'$ 1'。顺便说一下,num_rows是数字,与0比较,而不是“0” - 无论如何它都有效,但这是一个坏习惯。我知道,因为我也有:-) – LSerni 2012-07-09 06:50:42
...另外,在检查数组是否存在之前取数组没有任何意义。如果num_rows为0,则立即返回。 (不要忘了释放你的mysql查询句柄 - 在小脚本中没有什么区别,但是在大脚本中,小的泄漏会迅速占用大量内存) – LSerni 2012-07-09 06:52:33