1

今天我在使用 Drupal 7.22 的网站上遇到了一个大问题。

此问题出现在管理员创建新节点时。

PDOException:SQLSTATE [23000]:违反完整性约束:1062 键“PRIMARY”的重复条目“308”:INSERT INTO {node}(nid、vid、type、language、title、uid、status、created、changed、comment、promote , sticky, tnid, translate) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11, :db_insert_placeholder_12, :db_insert_placeholder_13 ); 数组 ( [:db_insert_placeholder_0] => 308 [:db_insert_placeholder_1] => 308 [:db_insert_placeholder_2] => 事件 [:db_insert_placeholder_3] => fr [:db_insert_placeholder_4] => 测试 [:

我检查了数据库,最后一个节点 id 是 294。

有谁知道如何解决这个问题?

谢谢你的帮助。

4

2 回答 2

1

如果您的数据库有 PhpMyAdmin,请查看表:node 和 node_revision。可能是您那里有不同的索引并导致无法插入 id。

您的问题不是数据库中已经有一个条目,而是 node 和 node_revision (或其他表)具有与其他表不同的状态。您的数据库中的数据似乎不一致。

您的模块中有自定义表格句柄吗?修复 Id 问题并使用 node_load 或 user_load Drupal API 函数而不是自定义 DB 调用。

如果您使用的是 Drupal 6,请查看 node_counter 表,其中可能存在较旧的值。

于 2013-10-16T20:16:58.970 回答
-1

执行下面的mysql查询时,有没有结果?

SELECT * FROM node WHERE nid = 308;
于 2013-10-16T15:16:44.347 回答