- ベストアンサー
PHPでデータベースに正しく入力できない
別のプログラムで変数に値を渡して、その変数に入っている値(文字)をデータベースに入力するプログラムを作っています。 見ての通りCDのデータベースを作るプログラムです。 複雑なプログラムではないのですが 下記のようにプログラムを実行するとselect文で結果を確認した所 仮に繰り返し回数($t)が3だとして A、A-2、A-3、A-4 B、B-2、B-3、B-4 C、C-2、C-3、C-4 となるはずが、上記と同じデータが A、A-2、A-3、A-4 B、B-2、B-3、B-4 C、C-2、C-3、C-4 A、A-2、A-3、A-4 B、B-2、B-3、B-4 C、C-2、C-3、C-4 A、A-2、A-3、A-4 B、B-2、B-3、B-4 C、C-2、C-3、C-4 のように同じデータがそれぞれ2つずつ重複して入力されているのです。 2回目のprint文を見ると正しく表示されているのですが、データベースのほうは重複しているようです。 こちらに問題がないようなら変数受け渡しの部分も見せますので どなたか問題を見つけてくださらないでしょうか。お願いします。 $DBSERVER = "localhost"; //MySQLサーバ名 $DBUSER = "root"; //ログインユーザ名 $DBPASSWORD = ""; //パスワード $DBNAME = "cdb"; //データベース名 //MySQLに接続します $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); //MySQL読み込み時の文字コードを設定 mysql_query("set name sjis"); //データベースに接続します $selectdb = mysql_select_db($DBNAME); print("以下のデータを入力しました</BR>"); for($i=0;$i<$t-1;$i++){ $name=$cd[$i][0];/*array[]になるので入れ直し*/ $name=mb_convert_kana($name , "a","sjis"); $artist=$cd[$i][1]; $artist=mb_convert_kana($artist , "a","sjis"); $day=$cd[$i][2]; $record=$cd[$i][3]; $record=mb_convert_kana($record , "a","sjis"); $sql="insert into co2 values('0','$name','$artist','$day','$record')"; print("曲名: ".$name."</BR>"."歌手名: ".$artist."</BR>"."発売日: ".$day."</BR>"."レコード会社: ".$record."</BR></BR>"); mysql_query($sql); }
- みんなの回答 (3)
- 専門家の回答
お礼
遅れてしまって申し訳ないです。 ありがとうございます。上記のUNIQUE制約で重複を防ぐことができました。