[PHP-users 30855] Re: (再掲)PHPからデータベースへのデータ格納時の処理について

A syokora iacta_alea-est @ hotmail.co.jp
2006年 12月 2日 (土) 09:27:30 JST


ご回答ありがとうございます。
レコードとレコードの差分をとって統合ではなく、一致している要素があったら、レ
コードの挿入をやめ、
一致している要素がなかったらINSERTという方針に変えました。
それで、お示しいただいたコードをもとにこのようにしてみました。しかし、一致し
ている要素があるのに
INSERTしてしまいます。

$hit = false;
foreach($arrValue as $nkey2 => $strValue)
{
     $arrValue[$nkey2] = mb_convert_encoding($strValue, "UTF-8", 
"Shift_JIS"); 
			
			$select= <<<EOM
SELECT * FROM thesaurus  WHERE word ='{$arrValue[nkey2]}' OR dougigo1= 
'{$arrValue[nkey2]}' OR dougigo2= '{$arrValue[nkey2]}' OR dougigo3= 
'{$arrValue[nkey2]}' OR dougigo4= '{$arrValue[nkey2]}' OR  dougigo5= 
'{$arrValue[nkey2]}' OR dougigo6='{$arrValue[nkey2]}'; 
EOM;
	if(sqlite_query($db,$select)) //重複した値の検索
	{
	       $hit =true;
	       break;
	}
}

$insert = <<< EOM
INSERT INTO thesaurus(word, dougigo1,dougigo2,dougigo3,dougigo4,dougigo5,
dougigo6) VALUES('{$arrValue[0]}', '{$arrValue[1]}', '{$arrValue[2]}', 
'{$arrValue[3]}',
 '{$arrValue[4]}', '{$arrValue[5]}', '{$arrValue[6]}');
EOM;
	if($hit){
	          break;
	 }
	else{
	         sqlite_query($db,$insert); //配列をレコードに格納
	}

_________________________________________________________________
MSNサーチは Live Search に進化します http://get.live.com/search/overview 



PHP-users メーリングリストの案内