PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php function split_query($query) { $queries = []; $reqexp = '/(.*)(?:delimiter\s+(\S+)(.+)delimiter\s+;)(.*)/ims'; $delimited = preg_match_all($reqexp, $query, $matches); if ($delimited) { $queries = array_merge($queries, preg_split("/;\s*\n/", $matches[1][0])); $delimiter = $matches[2][0]; $queries[] = str_replace($delimiter, '', $matches[3][0]); if ($matches[4][0]) { $queries = array_merge($queries, preg_split("/;\s*\n?/", $matches[4][0])); } } else { $queries = preg_split("/;\s*\n/", $query); } return $queries; } $query = "CREATE TABLE jshopping_orders (id int); DELIMITER $$ DROP PROCEDURE IF EXISTS addColumnToTable $$ CREATE PROCEDURE addColumnToTable(IN tbl_name VARCHAR(64), IN col_name VARCHAR(64)) BEGIN IF NOT EXISTS(( SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME = tbl_name AND COLUMN_NAME = col_name )) THEN SET @query = CONCAT('ALTER TABLE ', tbl_name, ' ADD ', col_name, ' varchar(24) NOT NULL DEFAULT '';') PREPARE stmt FROM @query; EXECUTE stmt; DEALLOCATE PREPARE stmt; END IF; END $$ DELIMITER ; -- --------------------- Procedure End CALL addColumnToTable('jshopping_orders','bonus'); CALL addColumnToTable('jshopping_orders','bonus2'); CALL addColumnToTable('jshopping_orders','bonus3');"; print_r(split_query($query));
Show:  
Copy Clear