私はこの機能を持っている:? nはPhpStormで
CASE1:。それがあるべきよう
public function searchArticle($keyword)
{
$keyword = sanitize($keyword, 15);
$sql = "SELECT a.*, c.id as cid, c.name" . Lang::$lang . " as catname, a.title" . Lang::$lang . " as atitle, c.slug as catslug, u.username,"
. "\n (SELECT COUNT(artid) FROM " . self::cmTable . " WHERE artid = a.id) as totalcomments, YEAR(a.created) as year, MONTH(a.created) as month, DATE_FORMAT(a.created, '%d') as day,"
. "\n (SELECT GROUP_CONCAT(DISTINCT participant) FROM " . self::partTable . " WHERE FIND_IN_SET(id,a.participants) > 0)as participants"
. "\n FROM " . self::mTable . " as a"
. "\n LEFT JOIN " . self::ctTable . " as c ON c.id = a.cid" . "\n LEFT JOIN users as u ON u.id = a.uid"
. "\n WHERE MATCH (title" . Lang::$lang . ", body" . Lang::$lang . ") AGAINST ('" . self::$db->escape($keyword) . "*' IN BOOLEAN MODE)"
. "\n AND a.created <= NOW()" . "\n AND (a.expire = '0000-00-00 00:00:00' OR a.expire >= NOW())"
. "\n AND a.active = 1"
. "\n ORDER BY a.created DESC LIMIT 20";
$row = self::$db->fetch_all($sql);
return ($row) ? $row : 0;
}
すべての行がある
私は、コードの再フォーマットオプションを使用する場合さて、このコードのスタイルは、次のようになります。
事例2:
public function searchArticle($keyword)
{
$keyword = sanitize($keyword, 15);
$sql = "SELECT a.*, c.id as cid, c.name" . Lang::$lang . " as catname, a.title" . Lang::$lang . " as atitle, c.slug as catslug, u.username," . "\n (SELECT COUNT(artid) FROM " . self::cmTable . " WHERE artid = a.id) as totalcomments, YEAR(a.created) as year, MONTH(a.created) as month, DATE_FORMAT(a.created, '%d') as day," . "\n (SELECT GROUP_CONCAT(DISTINCT participant) FROM " . self::partTable . " WHERE FIND_IN_SET(id,a.participants) > 0)as participants" . "\n FROM " . self::mTable . " as a" . "\n LEFT JOIN " . self::ctTable . " as c ON c.id = a.cid" . "\n LEFT JOIN users as u ON u.id = a.uid" . "\n WHERE MATCH (title" . Lang::$lang . ", body" . Lang::$lang . ") AGAINST ('" . self::$db->escape($keyword) . "*' IN BOOLEAN MODE)" . "\n AND a.created <= NOW()" . "\n AND (a.expire = '0000-00-00 00:00:00' OR a.expire >= NOW())" . "\n AND a.active = 1" . "\n ORDER BY a.created DESC LIMIT 20";
$row = self::$db->fetch_all($sql);
return ($row) ? $row : 0;
}
私が得ることができる最も近いのは、 "Preferences/Code Style/PHP/Wapping and Braces"で "Binary expressions"を "always wrap"に設定することですが、それはまだそうではなく、読める。
CASE3:私は前に新しい行を強制するために、PhpStormのコードの再フォーマット設定を設定するにはどうすればよい
public function searchArticle($keyword)
{
$keyword = sanitize($keyword, 15);
$sql =
"SELECT a.*, c.id as cid, c.name" .
Lang::$lang .
" as catname, a.title" .
Lang::$lang .
" as atitle, c.slug as catslug, u.username," .
"\n (SELECT COUNT(artid) FROM " .
self::cmTable .
" WHERE artid = a.id) as totalcomments, YEAR(a.created) as year, MONTH(a.created) as month, DATE_FORMAT(a.created, '%d') as day," .
"\n (SELECT GROUP_CONCAT(DISTINCT participant) FROM " .
self::partTable .
" WHERE FIND_IN_SET(id,a.participants) > 0)as participants" .
"\n FROM " .
self::mTable .
" as a" .
"\n LEFT JOIN " .
self::ctTable .
" as c ON c.id = a.cid" .
"\n LEFT JOIN users as u ON u.id = a.uid" .
"\n WHERE MATCH (title" .
Lang::$lang .
", body" .
Lang::$lang .
") AGAINST ('" .
self::$db->escape($keyword) .
"*' IN BOOLEAN MODE)" .
"\n AND a.created <= NOW()" .
"\n AND (a.expire = '0000-00-00 00:00:00' OR a.expire >= NOW())" .
"\n AND a.active = 1" .
"\n ORDER BY a.created DESC LIMIT 20";
$row = self::$db->fetch_all($sql);
return ($row) ? $row : 0;
}
。 「\ nは?(それはCASE1に見ることができるように)
なぜ最初にそのような行を連結していますか?文字列リテラルは、細かい行にまたがることができます。 –
あなたは間違いなくパラメータを使うべきです。 1.パラメータを持つSQLクエリを定義します。 2.バインドパラメータ 3.クエリを実行します。 DBクラスが一種の 'bind_param'メソッドを実装すると思います。そうでなければ、それを実装します。または既に利用可能なDBクラスを使用してください。 – slava