Oznámení
Omlouváme se, provoz fóra byl ukončen
chybna detekcia typu stlpca v MySQL databaze
Upozornění: Tohle vlákno je hodně staré.
před 10 lety
- maX
- Člen | 4
Zdravim,
nasledujuci kod v DibiDatabaseInfo.php chybne detekuje typ stlpca LONGTEXT v MySQL databaze ako LONG tym padom je navratova hodnota dibi::INTEGER.
na tomto riadku … if (preg_match(„#$s#i“, $type)) { … ak $type==‚LONGTEXT‘ a $s==‚BYTE|COUNTER|SERIAL|INT|LONG‘ ⇒ preg_match zbehne a mame problem … resp. momentalne ja mam :)
<?php
public static function detectType($type)
{
static $patterns = array(
'BYTEA|BLOB|BIN' => dibi::BINARY,
'BYTE|COUNTER|SERIAL|INT|LONG' => dibi::INTEGER,
'CURRENCY|REAL|MONEY|FLOAT|DOUBLE|DECIMAL|NUMERIC|NUMBER' => dibi::FLOAT,
'^TIME$' => dibi::TIME,
'TIME' => dibi::DATETIME, // DATETIME, TIMESTAMP
'YEAR|DATE' => dibi::DATE,
'BOOL|BIT' => dibi::BOOL,
);
if (!isset(self::$types[$type])) {
self::$types[$type] = dibi::TEXT;
foreach ($patterns as $s => $val) {
if (preg_match("#$s#i", $type)) {
return self::$types[$type] = $val;
}
}
}
return self::$types[$type];
}
?>
před 10 lety
- David Grudl
- Nette Core | 6806
opraveno