сохранить комментарий MySQL в скрипте PHP - PullRequest
1 голос
/ 14 мая 2011

Я работал над проектом, в котором я разрабатывал команды MySQL в интерактивном режиме. Теперь я хочу запускать команды MySQL, используя скрипт PHP. Я делаю это, просто вставляя команды 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 ]

7 голосов
/ 14 мая 2011

Комментарии будут пропущены РЕДАКТИРОВАТЬ, если правильно экранировать (после "-" должен следовать символ пробела, табуляция, новая строка и т. Д.) .Попробуйте вместо этого:

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

-- another comment
drop table table2; 
";

$sqlQuery = $mysqliLink->multi_query($queryStg);
2 голосов
/ 14 мая 2011
"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

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