регулярное выражение PHP: поиск пропущенной точки с запятой в запросе db2 - PullRequest
0 голосов
/ 10 марта 2020

Я хочу написать код регулярного выражения PHP, чтобы найти пропущенную точку с запятой в запросе. Запросы сопровождаются кодами PHP. Для лучшего взгляда он использовал так много новых строк и притирок. Проблема в том, что между этими кодами как точно найти пропавшее; смотреть на это как на проблему, не используя другие инструменты. RegEx в PHP

, вот моя попытка, но она не работает.

regex="/\b(delete|insert|trancinate)\b(.*\n*(^;))*;?/gi"
prep_find_all(regex,$query,$missings);

, как в коде ; это пропущенная точка с запятой. Моя идея для функционального кода заключается в том, чтобы проверить, если новое утверждение указано и не заканчивается sh на ;, в противном случае мы можем проверить в конце всей строки значение ;, но необязательно использовать точку с запятой для всех концов.

?php

$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
  "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');

if ($conn) {
    echo "Connection succeeded.";
    } else {
    echo "Connection failed.";
}
$query = "
delete from L3_STAMM.L3_STAMM_ATTRIBUT ;
-- comment bla
DELETE FROM ETL.ETL_OPERATOR_TABELLE WHERE TABELLE IN 
(
 'L4_GENERELLE_STAMMDATEN'
,'L4_AVAL'
,'L4_DARLEHEN_FAZILITAET'
,'L4_IOPC_DARL_CASHFLOW'
)**;*
";
$exect = db2_exec($conn, $query);
if ($exect){echo "success.\n";}
db2_close($conn);
?>

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