保留PHP脚本中的MySQL注释

时间:2011-05-14 11:03:02

标签: php mysql comments

我一直致力于一个项目,我一直在以交互方式开发MySQL命令。我现在想要使用PHP脚本运行MySQL命令。我通过简单地粘贴MySQL命令并将它们变成PHP字符串来实现这一点。像这样......

$queryStg = "
    update table1 set col1 = 1;

    drop table table2; 
    ";

$sqlQuery = mysqli_multi_query($mysqliLink, $queryStg);

然而,我总是不得不删除MySQL注释以使其工作。我宁愿保留这些评论。有没有办法做到这一点?。我已经尝试在每条评论的末尾添加'\ n',但我无法让它发挥作用。 例如。如果我运行它会返回错误...

$queryStg = "
    -- a mySQL comment
    update table1 set col1 = 1;

    --another comment
    drop table table2; 
    ";

$sqlQuery = mysqli_multi_query($mysqliLink, $queryStg);

完整代码包含其有用的

$mysqliLink = new mysqli ($host, $username, $password, $dbName);

$queryStg = "
    -- a mySQL comment
    update table1 set col1 = 1;

    --another comment
    drop table table2; 
    ";

$sqlQuery = mysqli_multi_query($mysqliLink, $queryStg);

do {
        if ( mysqli_error($mysqliLink) ) {
        die("ERROR: " .
            htmlspecialchars(mysqli_error($mysqliLink), ENT_QUOTES) .
            "<br>\n");
    }

    echo mysqli_affected_rows($mysqliLink);
    mysqli_use_result($mysqliLink);
    $moreResults = mysqli_more_results($mysqliLink);
    @mysqli_next_result($mysqliLink);
} while($moreResults);

由于

2 个答案:

答案 0 :(得分:7)

如果正确转义,则会跳过 EDIT(“ - ”后面跟空格字符,制表符,换行符等)。试试这个:

$queryStg = "
-- a mySQL comment
update table1 set col1 = 1;

-- another comment
drop table table2; 
";

$sqlQuery = $mysqliLink->multi_query($queryStg);

答案 1 :(得分:2)

"select * from
 -- comment
 atable"

转化为"select * from -- comment atable" MySQL也允许这种类型的评论:

  

/*comment that ends*/

"select * from
 /*comment*/
 atable"

转化为"select * from /*comment*/ atable"

这确实有效: - )。

请参阅:http://dev.mysql.com/doc/refman/5.1/en/comments.html