我正在尝试将一些数据插入到我的数据库中,但简单的插入查询却欺骗了我。
以下是我的动手:
$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可以看到我的错误
祝你好运
答案 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
作为属性名称,因为它是保留字。