-1

次の mysql クエリを実行しようとしていますが、エラーは発生していませんが、どちらも機能していませんか?. 重複が検出された場合に列名を更新したいだけです。ありがとう:o)

 <?php
$form_id = $_POST[form_id];
    $query = mysql_query(<<<EOT
    ALTER TABLE `email_history` ADD `$form_id` VARCHAR( 255 ) NOT NULL)
    ON DUPLICATE KEY ALTER TABLE `email_history` CHANGE `$form_id` `$form_id` VARCHAR( 255 ) NOT NULL
    EOT
    ) or die(mysql_error());
        ?>

編集 >>>>>>> 私が更新しようとした唯一の理由は、フォームが編集されたときにスクリプトがエラーにならないようにすることでした。メールテンプレートが作成されると、メール履歴テーブルに列が追加され、ユーザーがテンプレートを使用してメールを送信すると、その列に日付が記録されます。この問題は、列の作成スクリプトがメール履歴のテンプレートの列を再作成しようとするときにメール テンプレートが編集され、エラーが発生したときに発生します。作り直します。

4

2 に答える 2

3

なんてことはありませんALTER TABLE ON DUPLICATE KEY。2 つのステップで行う必要があります。

  1. テーブル構造を取得します。

  2. 適切なクエリを作成して実行します。

于 2012-01-01T19:00:11.213 に答える
1

ON DUPLICATE KEYALTER TABLEクエリには無効です。詳細については、ドキュメントを参照してください: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

于 2012-01-01T19:01:14.837 に答える