php - 在 PHP 脚本中保留 MySQL 注释

标签 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);

谢谢

最佳答案

如果正确转义(“--”后需要跟空格字符、制表符、换行符等),注释将被EDIT 跳过。试试这个:

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

-- another comment
drop table table2; 
";

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

关于php - 在 PHP 脚本中保留 MySQL 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001390/

相关文章:

PHP fatal error : Call to a member function diff() on a non-object in. .. 比较数据库中的日期时间

php - 授权.net API 错误 : Class 'Goetas\Xsd\XsdToPhp\Jms\Handler\BaseTypesHandler' not found

php - Guzzle 中的 "concurrency"到底是什么?

mysql - 当表日期时间现在过去时触发脚本()

java - 为 java 项目生成 javadoc

PHP:我需要像 split() 这样的东西,但是

mysql - 我可以在 JDBC 准备好的语句中替换除参数之外的其他内容吗?

php - 在 CodeIgniter 中获取数据 - fatal error : Call to undefined method

c - 在 Emacs 中缩进 C block 注释

php - 信息模式表描述/注释