PHPでSQLクエリを作成する

良い一日。
PHPでSQLクエリをフォーマットする方法について話し合うことにしました。
したがって、どの基準が私の要求を満たす必要があります:
1.読みやすさ
2.リクエスト内の各アクションにコメントする機能
3.クエリから何も削除せずにコメントを使用してテーブルまたはアクションの1つを除外する機能

SELECTクエリの例を次に示します。
$sql = "SELECT m.id, m.text"
.", u.name, u.email"
." FROM messages m"
." LEFT JOIN users u ON u.id=m.user_id"
." WHERE m.status=0"
." AND u.id='".$user_id."'"
." ORDER BY m.date"
." LIMIT 10"
;


だから私が従う設計ルールは何ですか:
1.各演算子は別々の行にあります
2.各ページは「。」「」で囲まれているため、任意のアクションにコメントを付けることができます。
$sql = "SELECT m.id, m.text" // ID
.", u.name, u.email" // email
." FROM messages m" //
." LEFT JOIN users u ON u.id=m.user_id"
." WHERE m.status=0" // 0 ()
." AND u.id='".$user_id."'" // ID
." ORDER BY m.date" //
." LIMIT 10" // 10
;

クエリ文字列のいずれかを無効にします
$sql = "SELECT m.id, m.text"
.", u.name, u.email"
." FROM messages m"
." LEFT JOIN users u ON u.id=m.user_id"
." WHERE m.status=0"
." AND u.id='".$user_id."'"
// ." ORDER BY m.date"
." LIMIT 10"
;

3.テーブルへのアクセスは、テーブルごとにグループ化された個別の行に分割されます。これにより、コメントによってテーブルの1つを削除できます。
$sql = "SELECT m.id, m.text"
// .", u.name, u.email"
." FROM messages m"
// ." LEFT JOIN users u ON u.id=m.user_id"
." WHERE m.status=0"
// ." AND u.id='".$user_id."'"
." ORDER BY m.date"
." LIMIT 10"
;

4.「。」の後に、スペースが演算子の前に置かれます
." FROM messages m"
そして
.", u.name, u.email"
コンマ。各行を他の行から独立させます。

おそらく、この方法は複雑に見え、誰かに馴染みのないように見えるかもしれませんが、実践が示しているように、要求を処理するこの方法に慣れると、開発の生産性が大幅に向上します。

PS発行されたリクエストをタブで表示することはできませんでした。残念ながら、私はそれを行う方法を見つけられませんでした

Source: https://habr.com/ru/post/J53119/


All Articles