0

こんにちは、簡単なニュースレターのスクリプトを作成しています。2 つのグループがあり、各グループに 2 つの異なるテーブルがあります。

サブスクライバーをあるグループから別のグループに移動したいのですが、このクエリを入力すると機能します:

$sql = "INSERT INTO newsletter_subscribers2 SELECT * FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";

ただし、以前のサブスクライバーを移動した後、重複したエントリ キーでエラーが発生しました。これは、クエリが ID と共に移動されたと思われるため、移動、名前、姓、および電子メールだけが必要です。

$sql = "INSERT INTO newsletter_subscribers2 VALUES (firstname, lastname, email) SELECT newsletter_subscribers.firstname, newsletter_subscribers.lastname, newsletter_subscribers.email FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";

ただし、構文エラーが発生したため、コードのこの部分は機能していないようです。誰かがこれを手伝ってくれますか?

返信ありがとう

4

3 に答える 3

0

値を削除します

$sql = "INSERT INTO newsletter_subscribers2 (firstname, lastname, email) 
        SELECT newsletter_subscribers.firstname, newsletter_subscribers.lastname, 
               newsletter_subscribers.email 
        FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";

編集: SQL インジェクションを防ぐために、常に mysql_real_escape_string を使用します。

$sql = "... WHERE id='".mysql_real_escape_string($_GET['nid'])."'";
于 2013-10-29T10:50:21.807 に答える
0

削除する必要がありますvalues

  $sql = "INSERT INTO newsletter_subscribers2(firstname, lastname, email) 
   SELECT newsletter_subscribers.firstname, newsletter_subscribers.lastname, 
   newsletter_subscribers.email 
   FROM newsletter_subscribers WHERE id='".$_GET['nid']."'";
于 2013-10-29T10:55:09.243 に答える