2013-02-11 64 views
2

我是新来的Drupal。 所以我想知道你能否帮助我。Drupal 7的MySQL查询(插入)

我看到了很多关于Drupal的API MySQL的事情-Y文件,它被窃听我,我要研究一下可以完成我的工作完成。

而这里的是我申请我的问题

enter image description here

关于我对INSERT功能问题的文件,我这个表名为嵌入

enter image description here

这里是我嵌入表中的数据。

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 = NO的字段都需要在插入sql语句中插入值,或者,在mysql表中列出的默认值。 – steve 2013-02-11 14:43:27

回答

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' 没有默认值

解释了很多。