2016-09-20 20 views
0

私はmysqlで自分のデータを保持するデータベースを持っています。 私は自分のテーブルにデータを既に持っており、このテーブルに新しいデータを挿入したいが、そのデータがまだ存在していないかどうかをチェックしたい。 私はテーブルにデータを挿入する機能がありますが、データが存在しないかどうかを確認するSQLクエリが必要ですか? 私のテーブルの「単語」の列は、word、num、hit、instoplistです。 私は、これは私のコードでPHPのコードに行が存在しない場合のテーブルへの値の挿入

おかげで、

を書く:としてユニークである列に選択クエリを作成し、データを挿入する前に(表関数に挿入)

function insert($myWords) 
    { 
     global $conn; 
     $temp1 = $value['document']; 
     $temp2 = $value['word']; 

      $sql = "INSERT INTO words (word,num,hit,instoplist) VALUES"; 
      foreach ($myWords as $key => $value) { 
       $word = $value['word']; 
       $number = $value['document']; 
       $hit = $value['hit']; 
       $stop = $value['stopList'];   
       $sql .= "('$word', '$number', '$hit','$stop'),";     
      } 
      $sql = rtrim($sql,','); //to remove last comma 
      if($conn->query($sql)!== TRUE) 
      { 
         echo "error". $conn->error; 
      } 
    } 
+0

なぜ列 'word'をユニークにしないのですか? –

+0

存在しない場合は行を挿入し、そうでない場合はその行を更新しますか? –

+0

私は別の文書にある同じ単語を持つ行はほとんどないので、 – adi

答えて

0

$chkExist = "select id from table where col_name = '".$value."'"; 
$res = $conn->query($chkExist); 

// Now check if there is some record in $res than stop the entry otherwise insert it 
+0

私は別の行で同じ単語を持っているのでunikを使うことはできません。 – adi

-1
$sel="select * from words where word = '$word' AND document = '$document' AND hit = '$hit' AND stopList ='$stopList'"; 
    $qry=mysqli_query($sel); 
    $num=mysqli_num_rows($qry); 
if($num==0){ 
    $sql = "INSERT INTO words (word,num,hit,instoplist) VALUES"; 
     foreach ($myWords as $key => $value) { 
      $word = $value['word']; 
      $number = $value['document']; 
      $hit = $value['hit']; 
      $stop = $value['stopList'];   
      $sql .= "('$word', '$number', '$hit','$stop'),";     
     } 
     $sql = rtrim($sql,','); 
    }else{ 
     echo "Already Exist"; 
    } 
+1

y rはそのmysql_ *を使用していますが、PHP 7では閉じており、OPではこれも使用していません。 OPはどのように接続を維持できますか? – devpro

+0

更新のおかげで、plzの読み方、mysqli_ *の動作方法http://php.net/manual/en/mysqli.query.php、提供されたコードは機能しません – devpro

+0

大丈夫です。私は自分のコードでこれを使用していません。 – premi

0
function insert($myWords) 
{ 
    global $conn; 
    $temp1 = $value['document']; 
    $temp2 = $value['word']; 

     $sql = "INSERT INTO words (word,num,hit,instoplist) VALUES"; 
     foreach ($myWords as $key => $value) { 
      $sql2 "SELECT * FROM words WHERE word = '".$value['word']."' OR num = '".$value['document']."'"; //other data if you want 
      $resultat=mysql_query($query); 
      if($resultat==""){ 
       $word = $value['word']; 
       $number = $value['document']; 
       $hit = $value['hit']; 
       $stop = $value['stopList'];   
       $sql .= "('$word', '$number', '$hit','$stop'),"; 
      }    
     } 
     $sql = rtrim($sql,','); //to remove last comma 
     if($conn->query($sql)!== TRUE) 
     { 
        echo "error". $conn->error; 
     } 
} 
:ようなあなたの要件ごと210
関連する問題