php - MYSQL 列指定两次 INSERT

标签 php mysql ajax

希望能得到一些帮助。

我正在制作一个添加任务表,用户可以在其中输入标题、描述、用户分配和其他内容到任务规范中。有一个选项可以添加另一行(任务),这是使用 ajax 生成的。

该行中的每个输入都有一个原始名称 (name="tasktitle0", name="privacy0"),当您添加新行时,它们具有相同的名称,只是变量会递增并附加到 if 的末尾例如(tasktitle1 和 taskprivacy1 等等)。

当我提交表单时,我 subst() 输入的名称,修剪前四个字符,然后修剪最后一个字符,这样名称就变成了“title”、“privacy”,就像我要去的数据库中的列一样插入它们。

如果我只提交一项任务,应用程序就可以运行。但是如果我创建一个新行(任务),MySql 会给我一个错误,说

出现错误。错误 #Column 'privacy' 指定了两次

我知道为什么要这样做,我只需要知道如何解决这个问题。

继承人我修剪名称的 php:

if ($_GET['s'] == "Y") {
    $str2 = '';
    foreach ($_POST as $p => $v) {
        if (substr($p, 0, 4) != "flag" && $p != "key" && substr($p, 0, 4) == "task") {
            if (!empty($v)) {
                $str2 .= mb_substr(substr($p, 4), 0, -1) . "='" . addslashes($v) . "',";
            } else {
                $str2 .= substr($p, 4) . "=NULL,";
            }
        }
    }
}

这是我插入它的地方:

$sql3 = "INSERT INTO nameofDB.tablename SET ";
$sql3 .= $str2;
$sql3 = substr($sql3, 0, -1);

if ($str2 != '') {
    if ($r2 = mysql_query($sql3, $Link)) {
        $mess = "Successfully saved support ticket.";
    } else {
        $mess = "There was an error. Error #" . mysql_error($Link);
        echo $mess . "<br>";
        echo $sql3;
        exit;
    }
}

这是它显示的错误:

这是当我执行 2 行(任务)时,我知道在一个查询中我告诉它两次插入列,但我该如何解决这个问题?想法?

There was an error. Error #Column 'privacy' specified twice INSERT INTO dbname.tablename SET ticketNum='95240560',title='d',tdesc='asd',datefrom='02/26/2013',cat='PERSONAL',userid='3171',status='INACTIVE',priority='MEDIUM',privacy='PUBLIC',ticketNum='95240560',title='sad',tdesc='d',datefrom='02/28/2013',cat='BEREAVEMENT',userid='1949',status='COMPLETED',priority='HIGH',privacy='PRIVATE'

最佳答案

错误消息说明了一切:您正在尝试将两个值插入列 privacy

INSERT INTO dbname.tablename SET ticketNum='95240560',title='d',tdesc='asd',datefrom='02/26/2013',cat='PERSONAL',userid='3171',status='INACTIVE',priority='MEDIUM',privacy='PUBLIC',ticketNum='95240560',title='sad',tdesc='d',datefrom='02/28/2013',cat='BEREAVEMENT',userid='1949',status='COMPLETED',priority='HIGH',privacy='PRIVATE'

更糟糕的是,您分配了两个不同的值。您真的需要检查您的逻辑,因为这不是您获得冲突值的好兆头。

关于php - MYSQL 列指定两次 INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045340/

相关文章:

javascript - 网页上的直播 channel 流

mysql - 基于 CSV 文件自动生成 MySQL 架构

javascript - 从列表 JQUERY 中获取点击输入的正确名称

php - Bootstrap 模式 + PHP + AJAX

PHP/MySQL Ticket Response - 在数据库中存储电子邮件响应?

php - 如何从 ChartJS 收集的数据中获取百分比?

Php 文件内容到多个表

mysql - 更新 mysql 表时编译准备语句时出现问题

php - 无法通过php文件将数据插入MySQL

php - 在网页中实时显示MySQL表