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