初心者、yii フレームワーク 1.1 を使用しています。今日、データベース DAO の CRUD 更新操作を練習中に問題が発生しました。コードを参照してください:
これは、データベーステーブル内の名前値 lishenglong を持つレコードをスマートに更新したいことを意味します。データベーステーブルのレコードは次のとおりです。
つまり、バッチ更新では、以下の4行のレコードが更新されるのですが、そうではありません
実行結果は、最初の行だけが更新されるのですが、どういう状況でしょうか? ?
実行された SQL ステートメントを表示するためにログをオンにしました。ステートメントは次のとおりです。
パラメータをバインドするときに、 name='lishenglong' の更新条件が上書きされましたが、解析すると name='smart' 、 name='smart' になりました。は実際に更新したい新しい値であり、更新条件ではありません。経験のあるおばちゃんにも理由と解決策を教えてください、とても感謝しています〜
。 返信内容: 初心者、yii フレームワーク 1.1 を使用しています。今日、データベース DAO の CRUD 更新操作を練習しているときに問題が発生しました。コードを見てください:これは、データベーステーブル内の名前値 lishenglong を持つレコードをスマートに更新したいことを意味します。データベーステーブルのレコードは次のとおりです。
実行結果は、最初の行だけが更新されるのですが、どういう状況でしょうか? ? 実行された SQL ステートメントを表示するためにログをオンにしました。ステートメントは次のとおりです。
パラメータをバインドするときに、 name='lishenglong' の更新条件が上書きされましたが、解析すると name='smart' 、 name='smart' になりました。は実際に更新したい新しい値であり、更新条件ではありません。経験のあるおばちゃんにも理由と解決策を教えてください、とても感謝しています〜
。
Yii1.1 クラスリファレンスマニュアルの system.db.CDbCommand の update メソッドを参照してください。 メソッドのプロトタイプは次のとおりです。 リーリー $params
には特別な説明があります リーリー
これは、フィールド名をプレースホルダー名として使用しないことを意味します。
解決策はリーリー