【问题标题】:Drupal 7 Mysql query (Insert)Drupal 7 Mysql 查询(插入)
【发布时间】:2025-11-24 15:05:01
【问题描述】:

我是 Drupal 的新手。 所以我想知道你是否可以帮助我。

我看到了很多关于 Drupal API mysql thing-y 的文档,这一直困扰着我,我必须再次学习才能完成我的工作。

这是我用于解决我的问题的文档

关于 INSERT 函数的问题,我将这张表命名为 embed

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

然后在我的基本页面上,我尝试插入查询。

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

它没有向表中插入数据,而是输出这样的错误。

有人知道这个东西的解决方案吗?我现在真的很困惑。

【问题讨论】:

  • 我自己开始学习drupal,但我认为您的问题与MYSQL 有关。在你的表中,所有说 NULL = NO 的字段都需要在你的 insert sql 语句中插入值,或者,在 mysql 表中列出一个默认值。

标签: mysql drupal-7


【解决方案1】:

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

解释很多。

【讨论】: