2013-12-01 1 views
-1

Я пытаюсь вставить некоторые данные в свою базу данных, но простой запрос вставки обманывает меня.Вставка php в сбой и я не вижу никакой ошибки

Вот что я получил атм:

$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

Разделите столбцы запятой. Кроме того, что такое «где» в вставке? Пока еще не записано, что делает то, что происходит? Вы читали mysql-документацию для инструкций INSERT? –

ответ

2

Это потому, что вы используете UPDATE Синтаксис не 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 в элементах. Таким образом, у вас есть только необходимые значения.

И еще один плюс. Подумайте не о пользователе class как имя атрибута, поскольку это зарезервированное слово.

+0

Я пытался использовать ваш код, но он не вставлен. Спасибо большое за ваши ответы –

+0

Есть ли сообщение об ошибке? –

+0

Нет ошибок нет –

Смежные вопросы