1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-10 00:27:45 +02:00

Bugfix: should fix the db-verify issue with table field-names containing 'char'

This commit is contained in:
CaMer0n
2012-11-02 20:28:49 +00:00
parent c3cd3ccc3b
commit 95ae8d911d

View File

@@ -33,7 +33,7 @@ class db_verify
'mediumblob','longblob','tinytext','mediumtext','longtext','text','date'); 'mediumblob','longblob','tinytext','mediumtext','longtext','text','date');
var $fieldTypeNum = array('bit','tinyint','smallint','mediumint','integer','int','bigint', var $fieldTypeNum = array('bit','tinyint','smallint','mediumint','integer','int','bigint',
'real','double','float','decimal','numeric','varchar','char','binary','varbinary','enum','set'); 'real','double','float','decimal','numeric','varchar','char ','binary','varbinary','enum','set'); // space after 'char' required.
var $modes = array( var $modes = array(
'missing_table' => 'create', 'missing_table' => 'create',
@@ -217,8 +217,8 @@ class db_verify
*/ */
$debugA = $this->tables[$selection]['data'][$key]; // Extracted Raw Field Text $debugA = $this->tables[$selection]['data'][$key]; // Extracted Raw Field Text
$debugB = $rawSqlData; // $debugB = $rawSqlData;
// $debugB = $sqlDataArr['data'][0]; // Extracted Raw Field Text $debugB = $sqlDataArr['data'][0]; // Extracted Raw Field Text
if(isset($debugA)) if(isset($debugA))
{ {
@@ -728,6 +728,8 @@ class db_verify
$regex = "/`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default .*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im"; $regex = "/`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default .*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im";
$regex = "/^ *?`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default [\w'.-]*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im"; $regex = "/^ *?`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*(auto_increment|default [\w'.-]*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\s*?\n/im";
// echo $regex."<br /><br />";
// $regex = "/`?([\w]*)`?\s*(int|varchar|tinyint|smallint|text|char|tinyint) ?(?:\([\s]?([0-9]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(NOT NULL|NULL)?[\s]*(auto_increment|default .*)?[\s]?,/i"; // $regex = "/`?([\w]*)`?\s*(int|varchar|tinyint|smallint|text|char|tinyint) ?(?:\([\s]?([0-9]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(NOT NULL|NULL)?[\s]*(auto_increment|default .*)?[\s]?,/i";
// $regex = "/^\s*?`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*?(auto_increment|default [\w'\".-]*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\n/im"; // $regex = "/^\s*?`?([\w]*)`?\s*?(".implode("|",$this->fieldTypes)."|".implode("|",$this->fieldTypeNum).")\s?(?:\([\s]?([0-9,]*)[\s]?\))?[\s]?(unsigned)?[\s]?.*?(?:(NOT NULL|NULL))?[\s]*?(auto_increment|default [\w'\".-]*)?[\s]?(?:PRIMARY KEY)?[\s]*?,?\n/im";
@@ -745,7 +747,7 @@ class db_verify
foreach($m[1] as $k=>$val) foreach($m[1] as $k=>$val)
{ {
$ret[$val] = array( $ret[$val] = array(
'type' => strtoupper($m[2][$k]), 'type' => trim(strtoupper($m[2][$k])),
'value' => $m[3][$k], 'value' => $m[3][$k],
'attributes' => strtoupper($m[4][$k]), 'attributes' => strtoupper($m[4][$k]),
'null' => strtoupper($m[5][$k]), 'null' => strtoupper($m[5][$k]),