fork(24) download
  1. <?php
  2. $sql = "BEGIN;INSERT INTO TABLE_A (a, b, c) VALUES('42', '12', '\'ab\'c; DEF');INSERT INTO TABLE_B (d, e, f) VALUES('42', '43', 'XY\'s Z ;uvw');COMMIT;";
  3. $splits = preg_split('~\([^)]*\)(*SKIP)(*F)|;~', $sql);
  4. echo "Option 1<br />";
  5. print_r($splits);
  6. echo "<br />Option 2<br />";
  7. $splits = preg_split('~\([^)]*\)(*SKIP)(*F)|(?<=;)(?![ ]*$)~', $sql);
  8. print_r($splits);
  9.  
  10.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Option 1<br />Array
(
    [0] => BEGIN
    [1] => INSERT INTO TABLE_A (a, b, c) VALUES('42', '12', '\'ab\'c; DEF')
    [2] => INSERT INTO TABLE_B (d, e, f) VALUES('42', '43', 'XY\'s Z ;uvw')
    [3] => COMMIT
    [4] => 
)
<br />Option 2<br />Array
(
    [0] => BEGIN;
    [1] => INSERT INTO TABLE_A (a, b, c) VALUES('42', '12', '\'ab\'c; DEF');
    [2] => INSERT INTO TABLE_B (d, e, f) VALUES('42', '43', 'XY\'s Z ;uvw');
    [3] => COMMIT;
)