2011-07-06 11 views
0

私はこれでプレーしてきた:私は、URLがすでにMySQLの更新テーブルには列が存在する場合(foreachの)

これを存在する場所のためのコラム「段落」を更新しようとしてきた

foreach($textnode as $key => $value) { 

$value = stripslashes($value); 
$value = mysql_real_escape_string($value, $con); 

mysql_query("INSERT INTO paragraphs (paragraphs, url) 
VALUES ('$value', '$url')"); 



} 

段落の各行を最初の段落に置き換えるだけで、うまく動作していないようです。 (何度も何度もそれを繰り返し)

mysql_query("UPDATE paragraphs SET paragraphs = '$value' 
WHERE url = '$url'"); 
+1

テーブルと同じ名前の列がありますか? DBAはこれについて何を言いますか? –

+0

何も練習していないので..... – re1man

+0

有効な行が存在するかどうかを確認するためにデータベースに対して基本的なクエリを実行していない場合は更新しますか? – Grambot

答えて

1

ユニークurlフィールドですか?

ない場合は、それにUNIQUE制約を追加し、このようなものでINSERT INTO . . . ON DUPLICATE KEY UPDATEを使用します。

mysql_query("INSERT INTO paragraphs (paragraphs, url) 
       VALUES ('$value', '$url') 
       ON DUPLICATE KEY 
       UPDATE paragraphs = '$value' 
      "); 

か(あなたは'$value'urlがすでに存在している新しい「追加」したいですか?):

mysql_query("INSERT INTO paragraphs (paragraphs, url) 
       VALUES ('$value', '$url') 
       ON DUPLICATE KEY 
       UPDATE paragraphs = CONCAT(paragraphs, '$value') 
      "); 
+0

yaそれは...どのように私はforeachを使用して行うだろう – re1man

+0

URLは一意ではない場合、これは可能ですか? – re1man

+0

@Pranet:いいえ、私は、ON DUPLICATE KEYが機能するためのUNIQUE制約が存在する必要があると思います。 'url'がプライマリキーであれば、それも問題ありません。 –

0

はWH見るために、クエリに

SELECT paragraphs, url 
FROM paragraphs; 

を実行してみてくださいあなたのテーブルには本当に含まれています。テーブルに同じURLをすべて入れている可能性があります。これは、更新動作を説明します。

関連する問題