2017-08-04 30 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