| @@ 47-73 (lines=27) @@ | ||
| 44 | * |
|
| 45 | * @return int column length or zero on error |
|
| 46 | */ |
|
| 47 | private function getColumnLength($table, $column) |
|
| 48 | { |
|
| 49 | /** @var XoopsMySQLDatabase $db */ |
|
| 50 | $db = XoopsDatabaseFactory::getDatabaseConnection(); |
|
| 51 | ||
| 52 | $dbname = constant('XOOPS_DB_NAME'); |
|
| 53 | $table = $db->prefix($table); |
|
| 54 | ||
| 55 | $sql = sprintf( |
|
| 56 | 'SELECT `CHARACTER_MAXIMUM_LENGTH` FROM `information_schema`.`COLUMNS` ' |
|
| 57 | . "WHERE TABLE_SCHEMA = '%s'AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'", |
|
| 58 | $db->escape($dbname), |
|
| 59 | $db->escape($table), |
|
| 60 | $db->escape($column) |
|
| 61 | ); |
|
| 62 | ||
| 63 | /** @var mysqli_result $result */ |
|
| 64 | $result = $db->query($sql); |
|
| 65 | if ($result) { |
|
| 66 | $row = $db->fetchRow($result); |
|
| 67 | if ($row) { |
|
| 68 | $columnLength = $row[0]; |
|
| 69 | return (int) $columnLength; |
|
| 70 | } |
|
| 71 | } |
|
| 72 | return 0; |
|
| 73 | } |
|
| 74 | ||
| 75 | /** |
|
| 76 | * Expand users password column to varchar(255) to accommodate bcrypt password_hash |
|
| @@ 369-395 (lines=27) @@ | ||
| 366 | * |
|
| 367 | * @return int|null max length or null on error |
|
| 368 | */ |
|
| 369 | function getColumnCharacterLength($table, $column) |
|
| 370 | { |
|
| 371 | /** @var XoopsMySQLDatabase $db */ |
|
| 372 | $db = XoopsDatabaseFactory::getDatabaseConnection(); |
|
| 373 | ||
| 374 | $dbname = constant('XOOPS_DB_NAME'); |
|
| 375 | $table = $db->prefix($table); |
|
| 376 | ||
| 377 | $sql = sprintf( |
|
| 378 | 'SELECT `CHARACTER_MAXIMUM_LENGTH` FROM `information_schema`.`COLUMNS` ' |
|
| 379 | . "WHERE TABLE_SCHEMA = '%s'AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'", |
|
| 380 | $db->escape($dbname), |
|
| 381 | $db->escape($table), |
|
| 382 | $db->escape($column) |
|
| 383 | ); |
|
| 384 | ||
| 385 | /** @var mysqli_result $result */ |
|
| 386 | $result = $db->query($sql); |
|
| 387 | if ($result) { |
|
| 388 | $row = $db->fetchRow($result); |
|
| 389 | if ($row) { |
|
| 390 | $columnLength = $row[0]; |
|
| 391 | return (int) $columnLength; |
|
| 392 | } |
|
| 393 | } |
|
| 394 | return null; |
|
| 395 | } |
|
| 396 | ||
| 397 | /** |
|
| 398 | * count users matching certain conditions |
|
| @@ 41-67 (lines=27) @@ | ||
| 38 | * |
|
| 39 | * @return int column length or zero on error |
|
| 40 | */ |
|
| 41 | private function getColumnLength($table, $column) |
|
| 42 | { |
|
| 43 | /** @var XoopsMySQLDatabase $db */ |
|
| 44 | $db = XoopsDatabaseFactory::getDatabaseConnection(); |
|
| 45 | ||
| 46 | $dbname = constant('XOOPS_DB_NAME'); |
|
| 47 | $table = $db->prefix($table); |
|
| 48 | ||
| 49 | $sql = sprintf( |
|
| 50 | 'SELECT `CHARACTER_MAXIMUM_LENGTH` FROM `information_schema`.`COLUMNS` ' |
|
| 51 | . "WHERE TABLE_SCHEMA = '%s'AND TABLE_NAME = '%s' AND COLUMN_NAME = '%s'", |
|
| 52 | $db->escape($dbname), |
|
| 53 | $db->escape($table), |
|
| 54 | $db->escape($column) |
|
| 55 | ); |
|
| 56 | ||
| 57 | /** @var mysqli_result $result */ |
|
| 58 | $result = $db->query($sql); |
|
| 59 | if ($result) { |
|
| 60 | $row = $db->fetchRow($result); |
|
| 61 | if ($row) { |
|
| 62 | $columnLength = $row[0]; |
|
| 63 | return (int) $columnLength; |
|
| 64 | } |
|
| 65 | } |
|
| 66 | return 0; |
|
| 67 | } |
|
| 68 | ||
| 69 | /** |
|
| 70 | * In PHP 7.1 Session ID length could be any length between 22 and 256 |
|