I'l*_*ack 14 php mysql readability code-readability
当您在SQL查询中有一个长字段时,如何使其更具可读性?
例如:
public function findSomethingByFieldNameId($Id) {
$sql = "SELECT field1, field2, field3 as Field3_Something, field4, field5, field6, field7, field8, field9
FROM table
JOIN table2 AS TNS ON TNS.id = table.id
WHERE something = 1";
return $this->db->fetchData($sql, null, 'all');
}
Run Code Online (Sandbox Code Playgroud)
phi*_*kle 18
我更喜欢Heredoc语法,虽然Nowdoc也适用于你的例子:
定界符:
http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
Nowdoc:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc
两者的优点是您可以直接将SQL复制并粘贴到此块中,而无需转义或格式化它.如果你需要包括解析,比如你用双引号字符串中的变量,你就会使用Heredoc.Nowdoc的行为类似于单引号.
Nowdoc:
public function findSomethingByFieldNameId($Id) {
$sql = <<<'SQL'
SELECT field1, field2, field3 as Field3_Something, field4, field5, field6, field7, field8, field9
FROM table
JOIN table2 AS TNS ON TNS.id = table.id
WHERE something = 1
SQL;
return $this->db->fetchData($sql, null, 'all');
}
Run Code Online (Sandbox Code Playgroud)
定界符:
public function findSomethingByFieldNameId($Id) {
$sql = <<<SQL
SELECT field1, field2, field3 as Field3_Something, field4, field5, field6, field7, field8, field9
FROM table
JOIN table2 AS TNS ON TNS.id = table.id
WHERE something = '$Id'
SQL;
$sql = mysql_real_escape_string($sql);
return $this->db->fetchData($sql, null, 'all');
}
Run Code Online (Sandbox Code Playgroud)
Mr.*_*ien 10
您可以像这样连接它以使其更具可读性:
$sql = "SELECT field1, field2, field3 as Field3_Something,";
$sql.= " field4, field5, field6, field7, field8, field9";
$sql.= " FROM table JOIN table2 AS TNS ON TNS.id = table.id";
$sql.= " WHERE something = 1";
Run Code Online (Sandbox Code Playgroud)
注意:确保在查询查询时,请不要忘记在双引号之间开始换行之前留空格,否则您将获得查询无效错误
$sql = "SELECT field1,
field2,
field3 as Field3_Something,
field4,....
FROM table
JOIN table2 AS TNS ON TNS.id = table.id
WHERE something = 1";
Run Code Online (Sandbox Code Playgroud)