php
  • mysql
  • sql
  • 2014-11-05 47 views 0 likes 
    0

    如果在我的数据库中存在字符串,那么我测试出了一个问题!在mysql中检查是否存在条目,而不是用php插入

    这是我到目前为止有:

    $db = mysqli_connect("localhost", "database", "secret", "user"); 
    if(!$db) 
    { 
    exit("Error: ".mysqli_connect_error()); 
    } 
    $search = 'SELECT * FROM table WHERE ip = $client_ip'; 
    $result = mysqli_query($db, $search); 
    
    
    
    while($row = mysqli_fetch_object($result)) { 
         if (isset($row->blocked)) { 
          echo 'You are blocked!'; 
         } else { 
          echo 'You are not blocked!'; 
         } 
    

    但是这不会为我工作。 $ client_ip之前已正确定义。

    +0

    客户端IP地址是非常不可靠。请注意,你可能会吸引你不想要的人,并且无法捕捉到你所做的一些事。 – 2014-11-05 02:15:58

    +0

    您还需要在检查行之前检查'mysqli_num_rows($ result)'查看返回结果的数目 – Saqueib 2014-11-05 02:18:45

    +0

    @Saqueib,我们应该检查'$ result'是否为false,因为失败的查询将通过' mysqli_query()' – Raptor 2014-11-05 02:33:51

    回答

    3

    你需要在引号包裹$client_ip,因为它是一个字符串:

    $search = "SELECT * FROM table WHERE ip = '$client_ip'"; 
    
    +0

    我已经完成了,不幸的是它仍然不起作用。 – 2014-11-05 02:15:25

    +0

    您需要调用mysqli_error()来查看mysql报告的错误,因为这是正确的语法。 – 2014-11-05 02:15:53

    +0

    你可以通过echo $ search来找出结果SQL。 – Raptor 2014-11-05 02:16:37

    0

    试试这个:

    $search = "SELECT * FROM table WHERE ip = '{$client_ip}'"; 
    
    +0

    请添加一些解释,以便更清楚地说明修复程序是什么。 – fejese 2014-11-05 11:22:30

    相关问题