Разумный способ форматирования кода SQL / PHP? - PullRequest
3 голосов
/ 17 июля 2009

У меня большой оператор SQL, есть ли какой-нибудь "умный" способ отформатировать этот материал?

<code>
$serverFields = 'SERVER_ID, SERVERNAME, SERVERLOCATION_ID, SERVERLOCATIONDETAIL_ID,
                             SERVEROS_ID, SERVEROSVERSION_ID, IP_BACKEND, IP_FRONTEND, IP_BACKUP,
                             SERVERREMOTETOOL_IDS, LOGIN, DESCRIPTION, TIME_INSERT, TIME_UPDATE,
                             CHANGE_USER, MANDATOR_ID, TIVOLI_UPDATABLE, TIVOLI_LAST_SCAN,
                             TIVOLI_LAST_UPDATE, WINDOMAIN_ID, PROCESSORCOUNT, OS_ID, PHYSICAL_MEMORY_KB';</p>

<p>$osFields = 'OSLANG_ID, OSARCH_ID, OSSUBVERSION_ID, OSMINORVERSION_ID, OSMAJORVERSION_ID, OSTYPE_ID';</p>

<p>$processorFields = 'PROCESSORMODEL_ID, PROCESSORMANUFACTURER_ID';</p>

<p>$sql = sprintf(
    "SELECT %s , %s , %s FROM %s s
        LEFT OUTER JOIN (
            (OS JOIN
                OSSUBVERSION USING (OSSUBVERSION_ID)) JOIN
                OSMINORVERSION USING (OSMINORVERSION_ID) JOIN
                OSMAJORVERSION USING (OSMAJORVERSION_ID)
            )USING (OS_ID) LEFT OUTER JOIN (
              PROCESSORMODEL JOIN PROCESSORMANUFACTURER USING(PROCESSORMANUFACTURER_ID)
            )USING (PROCESSORMODEL_ID) WHERE
                %s = :id AND MANDATOR_ID = :mandatorId",
                $serverFields, $osFields, $processorFields, $this->_tableName, $this->_identifier);

Ответы [ 4 ]

4 голосов
/ 17 июля 2009

Я иногда использую SQLInform для форматирования больших сценариев SQL, но это может быть не то, что вам нужно.

3 голосов
/ 17 июля 2009

Ну, я бы написал и отступил все это немного по-другому, но решать, будет ли это "умнее":

$sql = sprintf("
    SELECT %s, %s, %s
    FROM %s
    LEFT OUTER JOIN OS USING (OS_ID)
    JOIN OSSUBVERSION USING (OSSUBVERSION_ID)
    JOIN OSMINORVERSION USING (OSMINORVERSION_ID)
    JOIN OSMAJORVERSION USING (OSMAJORVERSION_ID)
    LEFT OUTER JOIN PROCESSORMODEL USING (PROCESSORMODEL_ID)
    JOIN PROCESSORMANUFACTURER USING (PROCESSORMANUFACTURER_ID)
    WHERE %s = :id
    AND MANDATOR_ID = :mandatorId
", $serverFields, $osFields, $processorFields, $this->_tableName, $this->_identifier);
0 голосов
/ 03 августа 2011

Я нашел этот бесплатный онлайн-инструмент для форматирования SQL:

http://www.dpriver.com/pp/sqlformat.htm

0 голосов
/ 11 марта 2011

Может быть Это то, что вы хотите: http://www.orczhou.com/sqlparser/ PHP SQL Format

вопрос такой же, как Использовать PHP для форматирования входного запроса SQL как HTML?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...