ホームページ  >  記事  >  バックエンド開発  >  パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です

パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です

WBOY
WBOYオリジナル
2016-09-21 14:13:111067ブラウズ

初心者、yii フレームワーク 1.1 を使用しています。今日、データベース DAO の CRUD 更新操作を練習中に問題が発生しました。コードを参照してください:

パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です
これは、データベーステーブル内の名前値 lishenglong を持つレコードをスマートに更新したいことを意味します。データベーステーブルのレコードは次のとおりです。

パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙ですつまり、バッチ更新では、以下の4行のレコードが更新されるのですが、そうではありません
実行結果は、最初の行だけが更新されるのですが、どういう状況でしょうか? ?
実行された SQL ステートメントを表示するためにログをオンにしました。ステートメントは次のとおりです。

パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です

パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です パラメータをバインドするときに、 name='lishenglong' の更新条件が上書きされましたが、解析すると name='smart' 、 name='smart' になりました。は実際に更新したい新しい値であり、更新条件ではありません。経験のあるおばちゃんにも理由と解決策を教えてください、とても感謝しています〜

返信内容:

初心者、yii フレームワーク 1.1 を使用しています。今日、データベース DAO の CRUD 更新操作を練習しているときに問題が発生しました。コードを見てください:

これは、データベーステーブル内の名前値 lishenglong を持つレコードをスマートに更新したいことを意味します。データベーステーブルのレコードは次のとおりです。 パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です

つまり、バッチ更新では、以下の4行のレコードが更新されるのですが、そうではありません

実行結果は、最初の行だけが更新されるのですが、どういう状況でしょうか? ? パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です実行された SQL ステートメントを表示するためにログをオンにしました。ステートメントは次のとおりです。


パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です

パラメータをバインドするときに、 name='lishenglong' の更新条件が上書きされましたが、解析すると name='smart' 、 name='smart' になりました。は実際に更新したい新しい値であり、更新条件ではありません。経験のあるおばちゃんにも理由と解決策を教えてください、とても感謝しています〜

パラメータを使用した yii 更新操作、更新に失敗しました、非常に奇妙です

Yii1.1 クラスリファレンスマニュアルの system.db.CDbCommand の update メソッドを参照してください。 メソッドのプロトタイプは次のとおりです。 リーリー $params

には特別な説明があります リーリー

これは、フィールド名をプレースホルダー名として使用しないことを意味します。

解決策は

リーリー

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