mysql INSERT并合并$ _POST

时间:2011-12-11 04:32:08

标签: php mysql

我有关于我的sql INSERT的2-3个问题,以及如何将多个$_POST合并到一个字段中。

  1. 我的INSERT声明出现问题,一切正常,直到我添加m_id=".intval($id)."
  2. for field m_age我需要将以下三个$_POST['month'] $_POST['day'] $_POST['year']合并/插入其中。我应该创建var $age = $_POST['month'] + ...;然后将$age分别插入m_age吗?
  3. 与2.相同2.我希望将$_POST['feet']$_POST['inches']合并到m_height
  4. 代码:

    $fields = explode(" ", "m_id m_pos m_name m_age m_btype m_height");
    $query = "INSERT INTO meminfo SET m_id=".intval($id).", ".dbSet($fields, "m_" + $_POST['add']);
    

2 个答案:

答案 0 :(得分:2)

在不知道你的dbSet()函数是什么样的情况下,我可能会冒一些猜测:

  1. 您的$ fields数组包含一个m_id字段,当您添加m_id =“。intval($ id)时,您已经明确设置了该字段。”一部分。这可能是你遇到问题的原因。

  2. 您想使用月,日和年插入“年龄”字段吗?假设它们是出生日期,您是否根据这3个参数计算年龄?如果是这样,我会说你最好做这个计算并将结果分配给$ age变量并在插入中使用它。

  3. 与#2相同,尽管将英尺和英寸转换为其中一个单位的合计总数是一个更简单的计算,因此可以使用insert语句进行内联。

  4. 基本上归结为2& 3你可以采用任何一种方式,但是如果你将计算与SQL查询的形成分开,你的代码可能会更具可读性(因此将来和/或其他人可以维护)。

答案 1 :(得分:1)

  

一切正常,直到我添加了m_id =“。intval($ id)。”

这不是真的。

虽然m_id=".intval($id)."是正确的陈述,但是 dbSet($fields, "m_" + $_POST['add']);一个绝对没有意义。

但你是对的,dbSet()函数打算像那样使用

$_POST['m_id'] = $id;

和'm_id'将自动添加到集合中。其他人工田也是如此

但是,在插入查询中添加id(假设自动增量字段)是没有意义的。

无论如何,看到你对基本PHP语法的困难,我将撤回使用dbSet()函数的建议 你必须手工编写插页,直到你熟悉它们为止 否则,没有任何功能对你没有好处。

明显来自您用于所有字段的m_前缀的特定问题。奇怪的突发奇想使事情变得多么复杂。你最好摆脱它。