是否有任何程序IDE可以在PHP字符串中格式化MySQL代码,例如我使用PHPStorm IDE而它无法做到.
它适用于PHP和MYSQL,但不适用于PHP字符串中的MYSQL.我准备使用新的IDE,因为现在我必须手动格式化数百个一行且不可读的数据库请求.我选择的唯一标准是ide可以自动执行.
<?php
...
$request1 = "select * from tbl_admin where admin_id= {$_SESSION['admin_id']} and active= 1 order By admin_id Asc";
...
?>
Run Code Online (Sandbox Code Playgroud)
应该成为
<?php
...
$request1 = "SELECT * 
               FROM tbl_admin 
                  WHERE admin_id = {$_SESSION['admin_id']}
                  AND active = 1
                      ORDER BY admin_id ASC";
...
?>
Run Code Online (Sandbox Code Playgroud)
    ehi*_*ime 17
在我看来,最好的方法是使用正则表达式或SED/AWK格式化所有内容,它为我们提供了动态替换地图的奖励.你可能遇到代码错误的可能性很高,所以它很难.
让我稍微研究一下,我可以看看我是否能想出一个好的解决方案.是否保证您将所有SQL封装在双引号中?
编辑
试试这个
cd {{directory}} && find . -type f -print0 |
  xargs -0 perl -i.bak -pe 's/select/SELECT/g ; s/from/\n\tFROM/g ; s/where/\n\t\tWHERE/g ; s/and/\n\t\tAND/g ; s/order by/\n\t\tORDER BY/g ; s/asc/ASC/g ; s/desc/DESC/g ;'
Run Code Online (Sandbox Code Playgroud)
这是一个例子
$ printf '"select * from whatever where this = that and active = 1 order by something asc";\n' |
> perl -pe 's/select/SELECT/g ; s/from/\n\tFROM/g ; s/where/\n\t\tWHERE/g ; s/and/\n\t\tAND/g ; s/order by/\n\t\tORDER BY/g ; s/asc/ASC/g ; s/desc/DESC/g ;'
"SELECT * 
    FROM whatever 
        WHERE this = that 
        AND active = 1 
        ORDER BY something ASC";
Run Code Online (Sandbox Code Playgroud)
它漂亮吗?不,完全没有,它是否有效.... Yeup.
我会尝试创建一个过滤器文件,也许还有一些bash程序或其他东西,因为我有时间运行这个热点.
编辑
这是一些修改后的代码,看起来更漂亮(sorta)
printf '$request1 = "select * from whatever where this = that and active = 1 order by something asc";\n' | 
perl -pe 's/select/SELECT/gi ; s/from/\n  FROM/gi ; s/where/\n    WHERE/gi ; s/and/\n    AND/gi ; s/order by/\n      ORDER BY/gi ; s/asc/ASC/gi ; s/desc/DESC/gi ;' | 
awk 'NR == 1 {pad = length($0)/2; print} NR > 1 {gsub(/\r/,""); printf "%*s%s\n", pad, " ", $0}'
__OUTPUTS__
$request1 = "SELECT * 
             FROM whatever 
               WHERE this = that 
               AND active = 1 
                 ORDER BY something ASC";
Run Code Online (Sandbox Code Playgroud)
        Kin*_*nch 12
正如我所知,PhpStorm可以做到这一点,如果你使用heredoc语法
$request1 = <<<SQL
   SELECT * 
           FROM tbl_admin 
              WHERE admin_id = {$_SESSION['admin_id']}
              AND active = 1
                  ORDER BY admin_id ASC
SQL;
Run Code Online (Sandbox Code Playgroud)
        作为替代解决方案,我建议将文本(*.php文件中的所有PHP代码)复制到Heidisql的查询编辑器中,单击重新格式化并复制回NetBeans并按Alt + Shift + F. 这将格式化sql并格式化php代码,保留sql格式.所以不是插件,而是复制,格式化整个文件,再次复制和格式化.
您可以使用此工具代替HeidiSQL,如果您熟悉这些Web工具,则可以使用此工具.
如果你想要更多的自动化,你可以使用netbeans的正则表达式支持格式化反斜杠n = \n为新行格式每次"插入,更新删除,选择,在哪里和值"运行这6次的术语将替换所有"插入" < - blank plus insert,在您的项目中使用新行.你可以编写一个正则表达式来搜索所有,"空白加保留字",组合并用新行替换它们.
您也可以像搜索"插入"一样使用它,并使用"\n\t insert"重新编译,这会创建一个新行和一个标签

|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           7937 次  |  
        
|   最近记录:  |