2017-08-04 31 views
0

我一直試圖做幾個小時,現在只需檢查表'nonpersonal'的列'用戶'以匹配我的變量'$收件人'。

我認爲必須比選擇整個'用戶'列更簡單的方法,通過fetch_assoc()通過一個while循環,然後檢查是否有'用戶'匹配'$收件人'。

如果是,請告訴我! :)如果不是,那麼最有效的方法是什麼?我嘗試了in_array(),例如,但無法讓它工作。我想我缺少的查詢($ SQL)如何填充$結果,我試圖找出以及基本的理解..

$sql = "SELECT user FROM nonpersonal WHERE user LIKE '$recipient'"; 
    $result = $conn->query($sql); 


    if($recipient == $result)) {   
     echo "<br> This recipient does exist." 
    } else { 
     echo "<br> This recipient does not exist. Try again.<br>"; 
    } 

非常感謝你提前!

回答

1

執行精確查詢... LIKE用於部分或不精確的匹配。

$sql = "SELECT user FROM nonpersonal WHERE user = '$recipient'"; 
$result = $conn->query($sql); 
if ($result->num_rows == 1) { 
    echo 'Exists!'; 
} 

還請確保您已經逃脫$recipient,以確保您不會允許SQL注入,見mysqli::real_escape_string

+0

我知道這是一個非常基本的問題,但到底是什麼的「 - > NUM_ROWS」的一部分嗎?它是否檢查查詢($ sql)選擇的行數? 關於轉義:把$變量放在''中是不夠的? 它工作很好btw。非常感謝你。傑弗裏。 :)) – anarchist912

+0

@ anarchist912正確,它返回返回的記錄數。 – Geoffrey

+0

關於轉義:把$變量放在''中是不夠的? – anarchist912