ホームページ バックエンド開発 PHPチュートリアル Yii は DeleteAll 接続テーブルの削除エラー報告の問題を解決します

Yii は DeleteAll 接続テーブルの削除エラー報告の問題を解決します

Jan 02, 2018 pm 01:05 PM
エラーを報告する 質問

この記事では、Yii が DeleteAll を使用して連結テーブルを削除する際のエラー問題の解決策を主に紹介し、関連する SQL ステートメントとエラーの原因と修正方法を分析します。お役に立てれば幸いです。

詳細は次のとおりです:

データを削除するとき、データの削除を決定するための条件に遭遇することがよくあります。今日では、Yii の CDbCriteria を使用して関連条件を生成します。バッチで削除すると、データベースはエラーを報告します。

ページコードは:

$criteria=new CDbCriteria;
$criteria->join = ' LEFT JOIN {{positions}} p ON p.zpo_id=t.zpo_id ';
$criteria->addCondition("p.zpo_type=1");
$criteria->addCondition("t.zpl_content_id in ($id)");
PosLog::model()->deleteAll($criteria);
ログイン後にコピー

エラーSQLは:

DELETE FROM `zd_pos_log` LEFT JOIN zd_positions p ON p.zpo_id=t.zpo_id WHERE (p.zpo_type=1) AND (t. zpl_content_id in (76))

正しい SQL ステートメントは次のとおりです:

DELETE t FROM `zd_pos_log` t LEFT JOIN zd_positions p ON p.zpo_id=t.zpo_id WHERE (p.zpo_type=1) AND (t. zpl_content_id in ( 76))

Yii の基本クラスまでトレースバックします:

framework/db/schema/CDbCommandBuilder.php#166

public function createDeleteCommand($table,$criteria)
{
  $this->ensureTable($table);
  $sql="DELETE FROM {$table->rawName}";
  $sql=$this->applyJoin($sql,$criteria->join);
  $sql=$this->applyCondition($sql,$criteria->condition);
  $sql=$this->applyGroup($sql,$criteria->group);
  $sql=$this->applyHaving($sql,$criteria->having);
  $sql=$this->applyOrder($sql,$criteria->order);
  $sql=$this->applyLimit($sql,$criteria->limit,$criteria->offset);
  $command=$this->_connection->createCommand($sql);
  $this->bindValues($command,$criteria->params);
  return $command;
}
ログイン後にコピー

Solution。基本クラスのメソッドを変更します:

public function createDeleteCommand($table,$criteria,$alias='t')
{
  $this->ensureTable($table);
  $alias=$this->_schema->quoteTableName($alias);
  if(empty($criteria->join)){
    $sql="DELETE FROM {$table->rawName}";
  }else{
    $sql="DELETE $alias FROM {$table->rawName} $alias";
  }
  $sql=$this->applyJoin($sql,$criteria->join);
  $sql=$this->applyCondition($sql,$criteria->condition);
  $sql=$this->applyGroup($sql,$criteria->group);
  $sql=$this->applyHaving($sql,$criteria->having);
  $sql=$this->applyOrder($sql,$criteria->order);
  $sql=$this->applyLimit($sql,$criteria->limit,$criteria->offset);
  $command=$this->_connection->createCommand($sql);
  $this->bindValues($command,$criteria->params);
  return $command;
}
ログイン後にコピー

関連する推奨事項:

Yii2 は rbac 権限制御を実装します

Yii の動作メカニズムとルーティングの詳細な説明

検証コード関数をロードするYii メソッドが付属しています

以上がYii は DeleteAll 接続テーブルの削除エラー報告の問題を解決しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

原因分析: HTTP リクエスト エラー 504 ゲートウェイ タイムアウト 原因分析: HTTP リクエスト エラー 504 ゲートウェイ タイムアウト Feb 19, 2024 pm 05:12 PM

http リクエスト エラーの理由の簡単な説明: 504GatewayTimeout: ネットワーク通信中、クライアントは HTTP リクエストを送信することでサーバーと対話します。ただし、リクエストの送信プロセス中にエラー メッセージが表示される場合があります。そのうちの 1 つは 504GatewayTimeout エラーです。この記事では、このエラーの原因と解決策について説明します。 504GatewayTimeout エラーとは何ですか?ゲートウェイタイムオ

解決策: HTTP リクエストの処理時のソケット エラー 解決策: HTTP リクエストの処理時のソケット エラー Feb 25, 2024 pm 09:24 PM

http リクエスト エラー: SocketError の解決策 ネットワーク リクエストを行うときに、さまざまなエラーが発生することがよくありますが、その一般的な問題の 1 つが SocketError です。このエラーは、アプリケーションがサーバーとの接続を確立できない場合にスローされます。この記事では、SocketError の一般的な原因と解決策について説明します。まず、Socket とは何かを理解する必要があります。ソケットは、アプリケーションが次のことを可能にする通信プロトコルです。

pyqt5 インストールエラーを素早く解決するためのステップバイステップガイド pyqt5 インストールエラーを素早く解決するためのステップバイステップガイド Jan 19, 2024 am 09:32 AM

Python を学習していて GUI アプリケーションを開発したい場合、PyQt5 は非常に良い選択です。これは、Python での PyQt ライブラリのバインドされたバージョンであり、Qt グラフィック ライブラリの呼び出しと開発が非常に便利になります。ただし、PyQt5 のインストール時に問題が発生する場合があります。このガイドでは、インストール エラーの問題を迅速に解決するためのいくつかの手順を説明し、具体的なコード例も添付します。 Python のバージョンが正しいことを確認してください PyQt5 は Python ベースのライブラリであるため、最初に

iPhone の一般的な問題を診断する方法を教えます iPhone の一般的な問題を診断する方法を教えます Dec 03, 2023 am 08:15 AM

強力なパフォーマンスと多彩な機能で知られる iPhone は、複雑な電子機器によく見られる、時折起こる問題や技術的な困難を免れません。 iPhone の問題が発生するとイライラすることもありますが、通常は警報を発する必要はありません。この包括的なガイドでは、iPhone の使用に関連して最も一般的に遭遇する課題のいくつかをわかりやすく説明することを目的としています。当社の段階的なアプローチは、これらの一般的な問題の解決に役立つように設計されており、機器を最高の動作状態に戻すための実用的な解決策とトラブルシューティングのヒントを提供します。不具合やより複雑な問題に直面している場合でも、この記事はそれらを効果的に解決するのに役立ちます。一般的なトラブルシューティングのヒント 具体的なトラブルシューティング手順を詳しく説明する前に、役立つ情報をいくつか紹介します。

Laravel APIのエラー問題に対処する方法 Laravel APIのエラー問題に対処する方法 Mar 06, 2024 pm 05:18 PM

タイトル: Laravel API エラーの問題に対処する方法、具体的なコード例が必要です Laravel を開発していると、API エラーが頻繁に発生します。これらのエラーは、プログラム コードのロジック エラー、データベース クエリの問題、外部 API リクエストの失敗など、さまざまな理由で発生する可能性があります。これらのエラー レポートをどのように処理するかは重要な問題であり、この記事では、特定のコード例を使用して、Laravel API エラー レポートを効果的に処理する方法を示します。 1. Laravelでのエラー処理

http リクエスト エラー: 504 ゲートウェイ タイムアウトの解決策 http リクエスト エラー: 504 ゲートウェイ タイムアウトの解決策 Feb 22, 2024 am 08:27 AM

タイトル: http リクエスト エラー: 504GatewayTimeout ソリューションの概要: ネットワーク リクエストを行うプロセス中に、http リクエスト エラーが発生することがあります。一般的なエラーの 1 つは、504GatewayTimeout エラーです。この記事では、504GatewayTimeout エラーの意味と考えられる原因を紹介し、エラーを解決するいくつかの方法を紹介します。テキスト: 504GatewayTimeout エラーは何を意味しますか?

UniApp エラーの問題を解決: 'xxx' アニメーション効果が見つかりません UniApp エラーの問題を解決: 'xxx' アニメーション効果が見つかりません Nov 25, 2023 am 11:43 AM

UniApp エラーの問題を解決します: 「xxx」アニメーション効果が見つかりません。UniApp は、Vue.js フレームワークに基づくクロスプラットフォーム アプリケーション開発フレームワークであり、WeChat アプレット、H5 などの複数のプラットフォーム用のアプリケーションの開発に使用できます。 、およびアプリ。開発プロセスでは、ユーザー エクスペリエンスを向上させるためにアニメーション効果をよく使用します。ただし、場合によっては、「「xxx」アニメーション効果が見つかりません」というエラーが発生することがあります。このエラーによりアニメーションが正常に実行されなくなり、開発に不都合が生じます。この記事では、この問題を解決するいくつかの方法を紹介します。

jQueryがform要素の値を取得できない問題の解決方法 jQueryがform要素の値を取得できない問題の解決方法 Feb 19, 2024 pm 02:01 PM

jQuery.val() が使用できない問題を解決するには、具体的なコード例が必要です フロントエンド開発者にとって、jQuery の使用は一般的な操作の 1 つです。その中でも、.val() メソッドを使用してフォーム要素の値を取得または設定する操作は、非常に一般的な操作です。ただし、特定のケースでは、.val() メソッドを使用できないという問題が発生する可能性があります。この記事では、いくつかの一般的な状況と解決策を紹介し、具体的なコード例を示します。問題の説明 jQuery を使用してフロントエンド ページを開発する場合、時々次のような問題が発生します。

See all articles