この記事では、thinkphp の使用時に発生する問題について説明します。
1. チェーン クエリについて $post_db = D('Post') $total = $post_db
;
$合計=
$合計->where($where1); $list=$total->order($order)->limit($limit)- >select()
;$count=$total-> ;count();この時点で、$count の値は見つかった数量ではなく、合計金額であることがわかりました。そして式
$total=$total ->where($where1); は
$total->where($where1)
; と同じ効果があります。合計数をクエリする必要がある場合、これは thinkphp の非常に非人道的な関数です: preg_replace() 要件: テキスト内の特定の値を変更したい。 preg_replace() を通して最初の使用法は次のとおりです: (SQL をバックアップするときに、自動インクリメントの開始値を変更します。なぜそのような必要があるのでしょうか?これには、ログ ファイルのバックアップと、バックアップ時のバッチでのバックアップが含まれます)この時点で、ログが増加しているため、自動インクリメント値が不一致になり、データの復元時に問題が発生します) Preg_replace('/AUTO_INCREMENT=(d+)/', 'AUTO_INCREMENT=' ."$1" + 2, $sql); AUTO_INCREMENT= 2 に置き換えられることが分かりました。 そして、$ 1 は認識されず、 'auto_increment =' を使用すると単独で識別できます。変数の使用に問題がある可能性があります。具体的な理由は確認しませんでした。私の解決策は次のとおりです。 ){ place('/AUTO_INCREMENT=(d+)/', 'AUTO_INCREMENT= '.$auto_int_start, ;つまり、事前に計算してから、具体的な理由を後で見てみましょう。原理を知っている生徒がいたら、メッセージを残して「3Q!」と教えてください。 著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。
上記は、thinkphp と php を使用する際の問題点 - preg_replace、chain query の内容を含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。