次の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());
?>
編集>>>>>>> 私は更新しようとしていた唯一の理由は、フォームが編集されたときにスクリプトがエラーしないようにしました。電子メールテンプレートが作成され、ユーザーがその列に日付が記録されたテンプレートを使用して電子メールを送信すると、電子メール履歴テーブルに列が追加されます。この問題は、作成列スクリプトが電子メール履歴のテンプレートの列を再作成しようとしたときに電子メールテンプレートが編集されたときに発生し、エラーが発生しました。理想的には、テンプレートが既に存在していて、再作成してください。
動的にそのテーブルに列を追加しようとしていて、その列が既に存在する場合はその型を変更しますか?そのような場合は、デザインを再考する必要があります(一度だけ実行可能なアップグレードタイプのプロセスでない限り、それはそうではありません)。 – Mat
たぶん彼はNoSQLの背景から来ています:-) –
こんにちは、私はその列を変更する必要はありません、一度実行し、列を作成してthats、問題は、フォームが編集されるとき、理想的には、列が存在する場合、スクリプトを再作成しようとしません。 –