2016-05-02 27 views
3

私はwordpressテーブルにレコードを挿入しようとしていますが、重複したレコードを挿入するという問題があります。INSERT INTO wordpressで重複を避ける方法

これは私がこの問題を解決する方法を、任意の重複レコードを挿入するにはしたくないですか?私のSQLクエリ

$qv = $conn->query("INSERT INTO wp_posts (post_title, post_content, post_name, post_date, post_date_gmt, post_author) VALUES('$title[$i]', '$description[$i]', '$url[$i]', '$date[$i]', '$postdate[$i]', '$author[$i]') ON DUPLICATE KEY UPDATE post_name = post_name"); 

ですかしたがって、あなたの重複制約には動作しません、

答えて

1

列に​​を作成し、

("INSERT ignore INTO wp_posts (post_title, post_content, post_name, post_date, post_date_gmt, post_author) 
VALUES('$title[$i]', '$description[$i]', '$url[$i]', '$date[$i]', '$postdate[$i]', '$author[$i]')); 
+0

にUNIQUE制約を追加してクリックできない、選択はあなたのテーブルを変更し、独自の追加ワードプレス – KenDev

+0

から無効になっているように思えます実行しない、また ' –

+0

のキーOK、私は一意のインデックスを追加しようとしていますが、そのは私にエラーを与えて、これは私が' ALTERが表wp_postsはUNIQUE( 'post_title'、' post_name')を追加IGNORE使用していますクエリですループ内でクエリを実行します。ループ内でクエリを構築し、後で実行します。キーlength' – KenDev

1

wp_posts以下のようにinsert ignoreの代わりinsertを使用するには、自動インクリメントの主キーとしてIDを持っており、あなたのINSERTクエリはIDを持っていません。 投稿タイトルごとに一意のレコードを作成する場合は、一意のインデックスを作成する必要があります。一意制約は、必要に応じて複数の列の組み合わせに適用できます。 insert ignoreは重複レコードを削除し、更新しません。アプリケーションでそれを処理する必要があります。

クエリは、私は私が意味するワードプレスの列に一意のキーを選択することはできませんよMySQLの

ALTER TABLE wp_posts ADD CONSTRAINT unique_post UNIQUE (post_title,post_name); 
+0

ユニークインデックスを追加しても機能しません。どうすればよいですか? – KenDev

+0

'ALTER TABLE table_name ADD CONSTRAINT somename UNIQUE(columnname)'これは構文 –

+0

です。 'ALTER TABLE wp_posts追加制約tvp UNIQUE(post_title) 'が動作していません – KenDev

関連する問題