-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。你应该分两步做。

  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 回答