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



All Articles