Yii は DeleteAll 接続テーブルの削除エラー報告の問題を解決します
この記事では、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; }
関連する推奨事項:
以上がYii は DeleteAll 接続テーブルの削除エラー報告の問題を解決しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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