[英]How do I make my own true / false return function?
我想做我自己的函數,其功能與以下實際代碼類似。即
if(mysql_num_rows($res) == FALSE) {
// DO SOMETHING BECAUSE THERE ARE NO RESULTS
}
在我的代碼中,我在該位置重復了幾次SQL語句,如果有結果,則繼續進行操作。
我想做的是在自己的函數中創建自己的FALSE返回值,即
if(my_special_function($variable) == FALSE) {
// DO STUFF
}
這是否像我的特殊功能中那樣簡單...
function my_special_function($variable) {
$sql = 'SELECT field FROM table WHERE something=$variable';
$res = mysql_query($sql);
if(mysql_num_rows($res) == FALSE) {
return FALSE;
} else {
return TRUE;
}
}
?
您可以使您的特殊功能更加簡單:
function my_special_function($variable)
{
$sql = "SELECT field FROM table WHERE something='{$variable}'";
$res = mysql_query($sql);
return mysql_num_rows($res) > 0;
}
我可以看到一些問題。
變量插值不會用單引號引起,也建議不要將變量直接替換為查詢。
$sql = 'SELECT field FROM table WHERE something=$variable';
應該
$sql = 'SELECT field FROM table WHERE something='.mysql_real_escape_string($variable);
mysql_num_rows
在出現問題時(例如,當其參數不是有效resource
時)返回false
。 如果您確實要檢查“無行返回”的情況,則需要檢查其值為0
是的,僅此而已。 您為什么不先問這樣的事,然后再問是否行得通?
您應該為mysql_query
添加其他錯誤檢查,並替換$sql = 'SELECT field FROM table WHERE something=$variable';
通過:
$sql = 'SELECT field FROM table WHERE something='.$variable;
我會修改一下
function my_special_function($variable) {
$sql = "SELECT field FROM table WHERE something=$variable";
$res = mysql_query($sql);
if(mysql_num_rows($res)) {
return TRUE;
}
return FALSE;
}
FALSE
。 if
語句更改為if(mysql_num_rows($res))
因為mysql_num_rows()
將在失敗時返回FALSE,並在其他所有值上返回數字。 因此,如果受影響的行數為0,或者發生錯誤,則不會返回TRUE
。 $variable
而不是傳遞給函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.