无法获取重复的行PHP

时间:2015-03-02 08:14:25

标签: php mysql

我的代码第一次完美运行(如果& else条件),下次如果我执行此代码,如果conditon.Dont知道原因则不执行。有人可以看看这个。它正在检查DB中的哈希值,如果找不到其他任何插入行,但它是重复的行。

$data = array();
foreach($objJson["statuses"] as $status) {
  $data[] = array("created_at" => $status["created_at"],"text" => $status["text"],"user_img" => $status["user"]["profile_image_url"],"from_user" => $status["user"]["screen_name"],"id" => $status["id"],"media_url" => $status["entities"]["media"][0]["media_url_https"],"hash" => md5($status["created_at"].$status["text"].$status["user"]["screen_name"]));

  $check2 = "SELECT hash FROM tweets where hash=".md5($status["created_at"].$status["text"].$status["user"]["screen_name"])." ";
  $res=mysqli_query($con,$check2);

  if (mysqli_num_rows($res)==1) {

  }
  else
  {
    $check = "INSERT INTO tweets (`created_at`,`text`,`user_img`,`from_user`,`media_url`,`hash`) 
VALUES('".$status["created_at"]."','".$status["text"]."','".$status["user"]["profile_image_url"]."','".$status["user"]["screen_name"]."','".$status["entities"]["media"][0]["media_url_https"]."','".md5($status["created_at"].$status["text"].$status["user"]["screen_name"])."')";
mysqli_query($con,$check);
  }
}

2 个答案:

答案 0 :(得分:0)

尝试将检查行更改为:

$key = md5($status["created_at"].$status["text"].$status["user"]["screen_name"]);
$check2 = "SELECT hash FROM tweets where hash='".$key."'";

答案 1 :(得分:0)

试试这段代码。我改进了格式,看到哈希周围缺少引号,这是一个小问题:

foreach($objJson["statuses"] as $status) {
  $hash   = md5($status["created_at"].$status["text"].$status["user"]["screen_name"]));
  $check  = "SELECT hash FROM tweets WHERE hash = '$hash'";
  $result = mysqli_query($con,$check);
  if (mysqli_num_rows($result) == 0) {
    $insert = "INSERT INTO tweets (created_at,text,user_img,from_user,media_url,hash) 
               VALUES('".$status["created_at"]."','".
                         $status["text"]."','".
                         $status["user"]["profile_image_url"]."','".
                         $status["user"]["screen_name"]."','".
                         $status["entities"]["media"][0]["media_url_https"]."','".
                         $hash."')";
    mysqli_query($con,$insert);
  }
}

我还改进了代码的结构。