我今天在使用Drupal 7.22的网站上遇到了一个大问题。
此问题出现在管理员创建的新节点上。
PDOException:SQLSTATE [23000]:完整性约束违规:1062密钥'PRIMARY'的重复条目'308':INSERT INTO {node}(nid,vid,类型,语言,标题,uid,状态,创建,更改,发表评论,推广,粘,tnid,翻译)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] => evenements [:db_insert_placeholder_3] => fr [:db_insert_placeholder_4] => TEST [:db_insert_placeholder_5] => 1 [:db_insert_placeholder_6] => 0 [:db_insert_placeholder_7] => 1381931095 [:db_insert_placeholder_8] => 1381931095 [:db_insert_placeholder_9] => 1 [:db_insert_placeholder_10] => 0 [:db_insert_placeholder_11] => 0 [: db_insert_placeholder_12] => 0 [:db_insert_placeholder_13] => 0)dans drupal_write_record()(ligne 7136 dans /var/www/carioca/includes/common.inc)。
我检查了数据库,最后一个节点ID是294。
有谁知道如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:1)
如果您的数据库有PhpMyAdmin,请查看表格:node& node_revision。可能是你有不同的索引,导致无法插入id。
您的问题不在于数据库中已有条目,而是该节点& node_revision(或其他表)具有与其他表不同的状态。数据库中的数据似乎不一致。
您的模块中是否有自定义表格句柄?修复Id问题并使用node_load或user_load Drupal API函数而不是自定义数据库调用。
如果您在Drupal 6上,请查看node_counter表,其中可能有较旧的值。
答案 1 :(得分:-1)
执行以下mysql查询时,您有结果吗?
SELECT * FROM node WHERE nid = 308;