Я хочу написать код регулярного выражения 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);
?>