0

こんにちは皆さん、スクリプトに問題があります

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root';
$dbname = 'site';
  $con = mysql_connect($dbhost, $dbuser, $dbpass);
    if (!$con)
    {
    die(mysql_error());
    }
mysql_select_db($dbname, $con);
$sql = "REPLACE INTO stiri (id, titlu, continut, link, categorie, data) VALUES   ('','$titlu','$text','$link','Liga 1','$data')"; 
mysql_query($sql);
mysql_close($con);

この部分は php の foreach 部分にあり、スクリプトを実行するたびにエントリが重複します。これを防ぐにはどうすればよいですか? UNIQUE Con​​straint を使用することもできますが、リンクを 125 文字を超える一意にする必要があります。

4

1 に答える 1

1

あなたidのテーブルの主キーフィールドだと思いますか?空の文字列 ( '') を挿入しようとしています。それが INT フィールドの場合、mysql は''0 に変換します。このような最初の挿入の後、重複キーの問題が発生します。

idauto_increment フィールドに変更し、null値を挿入します。

REPLACE INTO stiri (id, ...) VALUES (null, ....)

そのため、mysql は自動的に ID を生成できます。

于 2012-11-14T18:31:39.930 に答える