【问题标题】:PostgreSQL pg_query(): Query failed: ERROR: INSERT has more target columns than expressions (PHP)PostgreSQL pg_query():查询失败:错误:插入的目标列多于表达式(PHP)
【发布时间】:2021-02-24 22:37:07
【问题描述】:

我有以下列:

CREATE TABLE public.form_filled (
    username character(255) NOT NULL,
    q1 character(255),
    q2 character(255),
    q3 character(255),
    q4 character(255),
    dano character(255),
    q5 character(255),
    q6 character(255),
    q7 character(255),
    q8 character(255),
    q9 character(255),
    q10 character(255),
    q11 character(255),
    q12 character(255),
    q13 character(255),
    q14 character(255),
    q15 character(255),
    q16 character(255),
    q17 character(255),
    q18 character(255),
    q19 character(255),
    q20 character(255),
    q21 character(255),
    q22 character(255),
    q23 character(255),
    q24 character(255),
    q25 character(255),
    q26 character(255),
    q27 character(255),
    q28 character(255),
    q29 character(255),
    registered_date date
);

日期变量:

$date = date('Y-m-d H:i:s');

查询:

INSERT INTO form_filled 
    (
username, q1, q2, q3, q4, dano, q5, q6, q7, q8, q9, q10, q11, q13, q14, q15, q16, q17, q18 ,q19, q20, q21, q22, q23, q24, q25, q26, q27, q28, q29, registered_date
    ) 
    VALUES ('$username', '$q1', '$q2', '$q3', '$q4', '$dano', '$q5', '$q6', '$q7', '$q8', '$q9', '$q10', '$q11', '$q13', '$q14', '$q15', '$q16')
    ,('$q17', '$q18', '$q19', '$q20', '$q21', '$q22', '$q23', '$q24', '$q25', '$q26', '$q27', '$q28', '$q29', '$date')

通过我的查询,我获得:

警告:pg_query():查询失败:错误:INSERT 有更多目标 列比表达式 LINE 3: ...q5, q6, q7, q8, q9, q10, q11, q13, q14, q15, q16, q17, q18 ,... ^ 在 C:\xampp\htdocs\Safety\action_form.php 在第 61 行错误时 执行查询: INSERT INTO form_filled ( username, q1, q2, q3, q4,达诺,q5,q6,q7,q8,q9,q10,q11,q13,q14,q15,q16,q17,q18 ,q19,q20,q21,q22,q23,q24,q25,q26,q27,q28,q29, 注册日期)值('用户名','Y','N','Y','Y','损坏','N','N','N','N','N','N ','N','Y','N','N', 'N') ,('Y', 'N', 'N', 'N', 'N', 'N', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', '30', '2021-02-24 16:33:03')

【问题讨论】:

  • 您是否尝试过加入这两个价值括号?有一个逗号分隔 ...$q16') , ('$q17',... 可能会混淆 INSERT 命令

标签: php postgresql


【解决方案1】:

您正在尝试插入 31 列,但提供 2 条记录的值 - 第一条有 17 条记录,第二条有 14 条记录。

最有可能的是,在中间值(16 和 17)之间有额外的 ),(

试试:

INSERT INTO form_filled (
    username, 
    q1, 
    q2, 
    q3, 
    q4, 
    dano, 
    q5, 
    q6, 
    q7, 
    q8, 
    q9, 
    q10, 
    q11, 
    q13, 
    q14, 
    q15, 
    q16, 
    q17, 
    q18,
    q19, 
    q20, 
    q21, 
    q22, 
    q23, 
    q24, 
    q25, 
    q26, 
    q27, 
    q28, 
    q29, 
    registered_date) 
VALUES (
    '$username', 
    '$q1', 
    '$q2', 
    '$q3', 
    '$q4', 
    '$dano', 
    '$q5', 
    '$q6', 
    '$q7', 
    '$q8', 
    '$q9', 
    '$q10', 
    '$q11', 
    '$q13', 
    '$q14', 
    '$q15', 
    '$q16', 
    '$q17', 
    '$q18', 
    '$q19', 
    '$q20', 
    '$q21', 
    '$q22', 
    '$q23', 
    '$q24', 
    '$q25', 
    '$q26', 
    '$q27', 
    '$q28', 
    '$q29', 
    '$date');

还缺少 12 个,但可能是设计使然。

【讨论】:

  • 谢谢!!它有效!
  • @RubenOchoa:我很高兴听到这个消息 :)
猜你喜欢
  • 2017-08-27
  • 2015-02-22
  • 2020-09-17
  • 2021-12-20
  • 2017-04-20
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多