更新表时出错MySQL

时间:2014-06-02 08:36:06

标签: php mysql sql codeigniter-2

我有一个问题: 我的数据库中有2个表:

articles:
id  useid  title
users
id  name  surname

我的观点:

 Author<select name="author" id="author">
                            <?php foreach ($users as $u): ?>
                                <option value="<?php $u['id'] ?>" <?php if($u['id']==$a['userid']): ?> selected="selected" <?php endif ?> style="width:300px"><?php echo $u['name'] ?> <?php echo $u['surname'] ?></option>
                            <?php endforeach; ?>
        </select>
        <p><b>Content:</b></p>
        <textarea name="content" id="content" style="width:605px; height: 300px;" rows="200"><?php echo $a['content']; ?></textarea>

我的控制器:

$this->db->query("UPDATE articles SET title='$title',userid='$author' WHERE id=$aid" );

当我这样做时,我收到错误1452:无法添加或更新子行:外键约束失败(myblogarticles,CONSTRAINT articles_ibfk_1 FOREIGN KEY({{ 1}})参考useridadmindetails)ON UPETE CASCADE ON UPDATE CASCADE) 请帮帮我......

2 个答案:

答案 0 :(得分:2)

<option value="<?php $u['id'] ?>" <?php if($u['id']==$a['userid']): ?> selected="selected" <?php endif ?> style="width:300px"><?php echo $u['name'] ?> <?php echo $u['surname'] ?></option>

你的echo语句在哪里..

<option value="<?php echo $u['id']; ?>"代替“,这就是为什么密钥重复,每次它将采用相同的值为NULL。 只需改变它。

答案 1 :(得分:0)

在这种情况下,这意味着您的$author变量保留并且admindetails表中不存在的id(如果是数字)