[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 メーリングリストの案内