2013-02-11 3 views
2

Я новичок в Drupal. Так что мне было интересно, можете ли вы мне помочь.Drupal 7 Mysql query (Insert)

Я видел много документов относительно API-интерфейса mysql API-интерфейса Drupal, и это подслушивало меня, что я должен учиться еще раз, чтобы закончить свою работу.

А вот документы, которые я применяю к моей проблеме

enter image description here

Что касается моей проблемы о ВСТАВИТЬ функции, я эту таблицу под названием встраивать

enter image description here

и вот мои данные из таблицы embed.

enter image description here

Тогда на моей основной странице Я пытаюсь вставить запрос.

$id = db_insert("embed") 
    ->fields(array(
     'uid' => 1, 
     'fbp_id' => 22222, 
     'prom_stat' => 3333, 
     'status' => 1, 
    )) 
    ->execute(); 

Вместо того, чтобы вставлять данные в таблицу, выводится такая ошибка. enter image description here

Кто-нибудь знает решение этой проблемы? Я действительно запутался в этом прямо сейчас.

+2

Я начинаю изучать drupal самостоятельно, но я думаю, что ваша проблема связана с MYSQL. В вашей таблице все поля, которые говорят NULL = НЕТ, должны иметь значения, вставленные в них в вашем заявлении sql, OR, значение по умолчанию, указанное в таблице mysql. – steve

ответ

2

Как пояснил @steve в комментарии, проблема не на стороне drupal, а на стороне MySql. Вы должны изменить код вставки для

$id = db_insert("embed") 
    ->fields(array(
     'uid' => 1, 
     'fbp_id' => 22222, 
     'prom_stat' => 3333, 
     'status' => 1, 
     'prom_id' => 0, 
     'sweep_stat' => 0, 
     'sweep_id' => 0, 
     'comp_id' => 0, 
     'comp_stat' => 0, 
     'polls_stat' => 0, 
     'polls_id' => 0 
    )) 
    ->execute(); 

Так как я могу видеть, что ваша таблица MySql уже содержит значение, я предполагаю, что ранее вставки, где делается явным образом обеспечивая все значения, вместо того, чтобы полагаться на значения по умолчанию для поля в Конфигурация MySql.

Всякий раз, когда у вас есть исключение PDOException, вы должны внимательно прочитать его для подсказок. Такие ошибки действительно очень вербальные и дают много указателей для решения проблем. Например, в вашем случае,

'prom_id' не имеет значения по умолчанию

объясняет много.