Php插入失败,我看不到任何错误

时间:2013-12-01 18:41:36

标签: php mysql

我正在尝试将一些数据插入到我的数据库中,但简单的插入查询却欺骗了我。

以下是我的动手:

$insert = $this->db->execute('INSERT INTO `items` SET `class`=? `player`=? `name`=? `value1`=? `value2`=? `value3`=? `value4`=? `value5`=? WHERE `id`=?', array($item->class, $player->id, $item->name, $item->value1, $item->value2, $item->value3, $item->value4, $item->value5, $player->id));

也尝试过:

$insert = $this->db->execute('INSERT INTO `items` `class`=? `player`=? `name`=? `value1`=? `value2`=? `value3`=? `value4`=? `value5`=?', array($item->class, $player->id, $item->name, $item->value1, $item->value2, $item->value3, $item->value4, $item->value5));

我希望some1可以看到我的错误

祝你好运

1 个答案:

答案 0 :(得分:2)

这是因为你使用UPDATE语法而不是INSERT

insert语句应为:

Insert into TABLE_NAME ( list of fields goes here separeted by , ) 
                values ( the values, which in your case, is prepared. )

所以在你的情况下它应该是:

$insert = $this->db->execute('INSERT INTO 
                  `items` ( `class`, `player`, `name`, `value1`, `value2`,
                            `value3`, `value4`, `value5`, `id` ) 
                  values (? , ? , ? , ? , ? , ? , ? , ? , ? )', 
        array($item->class, $player->id, $item->name, $item->value1, 
              $item->value2, $item->value3, $item->value4, 
              $item->value5, $player->id)  );

这是一个建议。查看您的结构,您应该考虑创建一个新表来存储值,并使用FK到items表。这样你就只有需要的值。

还有另一个加分。请考虑不要将用户class作为属性名称,因为它是保留字。