【问题标题】:Integrity constraint violation when ID does existID 确实存在时违反完整性约束
【发布时间】:2014-03-03 16:23:30
【问题描述】:

四处搜索后,问题似乎是在插入表 2 时表 1 中不存在该 id,但它确实存在于我的表中!实际上,直到昨天,这几个月都运行良好。

错误:无法添加或更新子行:外键约束审核失败 CONSTRAINT reviews_ibfk_1 FOREIGN KEY (user_id) REFERENCES user(user_id))

public function actionAjaxComment($id) {
  $prod_id= $id;    

  if(Yii::app()->request->isAjaxRequest) {
    $model=new Review;
    $this->performAjaxValidation($model);

    $user_id = Yii::app()->user->user_id;

    $criteria = new CDbCriteria;
    $criteria->compare('target_product_id',$prod_id);
    $criteria->compare('user_id',$user_id);
    $record = $model->findAll($criteria);

    $model->attributes=$_POST['Review'];

    if(empty($record)) {
      $date = Yii::app()->getDateFormatter()->formatDateTime(time(), 'long', 'short');

      $model->user_id = $user_id;
      $model->target_product_id = $prod_id;
      $model->review_date = time();
      $uname = ucwords(Yii::app()->user->username);
      $img = User::model()->FindByPk($user_id)->image;
      $img_url = Yii::app()->basePath."/images/user/".$img;
      $img = Yii::app()->assetManager->publish($img_url);
      $model->save();

      echo CJSON::encode(
        array('status'=>'success',
              'star'=>$model->star,
              'review'=>$model->review,
              'user'=>$uname,
              'uimg'=>$img,
              'date'=>$date,
      ));

      return $model->review;
    } elseif(!empty($record)) {
      echo CJSON::encode(
        array('status'=>'dup'
      ));
    } else
      echo CJSON::encode(
        array('status'=>'error'
      ));

    Yii::app()->end();
  }
}

【问题讨论】:

  • Yii::app()->user->user_id; user_id 是否在 useridentity.php 中设置?
  • 检查 Yii::app()->user->user_id;是返回用户ID吗?
  • 是的,它返回了正确的 id
  • 请查看此链接,您可能会遇到答案中所述的问题之一。 stackoverflow.com/questions/21971599/yii-null-foreign-key/…
  • 谢谢!这是#3!只为这件小事花了几个小时。 :/ 再次感谢!

标签: sql yii


【解决方案1】:

您的 user_id 是外键吗?如果是,则它指向的表可能没有您尝试分配给它的用户 ID 的行

【讨论】:

    猜你喜欢
    • 2020-01-14
    • 1970-01-01
    • 2021-12-13
    • 2017-10-01
    • 2019-04-12
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多