Вилазить "Parse error", що це?

Отримайте допомогу з встановлення та використання phpBB 3.0.х
Yelik
Повідомлень: 50
З нами з: 06 вересня 2009, 16:29

Вилазить "Parse error", що це?

Повідомлення Yelik » 30 березня 2013, 21:56

Після оновлення до 3.0.10 виникли проблеми. При спробі зайти в налаштування CAPTCHA чи скористатись "Резерним копіюванням БД", вилазить наступна помилка:

Parse error: syntax error, unexpected T_CASE in /var/www/virtual/volleyball.lviv.ua/htdocs/includes/db/db_tools.php on line 1716

Також на форумі не працює відновлення паролю.

Думав сам розберусь знайшов файл db_tools.php, рядок 1716(подаю більшу частину коду, щоб було зрозуміло):


* Add new column
*/
function sql_column_add($table_name, $column_name, $column_data, $inline = false)
{
$column_data = $this->sql_prepare_column_data($table_name, $column_name, $column_data);
$statements = array();

switch ($this->sql_layer)
{
case 'firebird':
// Does not support AFTER statement, only POSITION (and there you need the column position)
$statements[] = 'ALTER TABLE ' . $table_name . ' ADD "' . strtoupper($column_name) . '" ' . $column_data['column_type_sql'];
break;

case 'mssql':
case 'mssqlnative':
// Does not support AFTER, only through temporary table
$statements[] = 'ALTER TABLE [' . $table_name . '] ADD [' . $column_name . '] ' . $column_data['column_type_sql_default'];
break;

case 'mysql_40':
case 'mysql_41':
$after = (!empty($column_data['after'])) ? ' AFTER ' . $column_data['after'] : '';
$statements[] = 'ALTER TABLE `' . $table_name . '` ADD COLUMN `' . $column_name . '` ' . $column_data['column_type_sql'] . $after;
break;

case 'oracle':
// Does not support AFTER, only through temporary table
$statements[] = 'ALTER TABLE ' . $table_name . ' ADD ' . $column_name . ' ' . $column_data['column_type_sql'];
break;

case 'postgres':
// Does not support AFTER, only through temporary table
if (version_compare($this->db->sql_server_info(true), '8.0', '>='))
{
$statements[] = 'ALTER TABLE ' . $table_name . ' ADD COLUMN "' . $column_name . '" ' . $column_data['column_type_sql'];
break;

1716 case 'sqlite':

if ($inline && $this->return_statements)
{
return $column_name . ' ' . $column_data['column_type_sql'];
}

if (version_compare(sqlite_libversion(), '3.0') == -1)
{
$sql = "SELECT sql
FROM sqlite_master
WHERE type = 'table'
AND name = '{$table_name}'
ORDER BY type DESC, name;";
$result = $this->db->sql_query($sql);

if (!$result)
{
break;
}

$row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);

$statements[] = 'begin';

// Create a backup table and populate it, destroy the existing one
$statements[] = preg_replace('#CREATE\s+TABLE\s+"?' . $table_name . '"?#i', 'CREATE TEMPORARY TABLE ' . $table_name . '_temp', $row['sql']);
$statements[] = 'INSERT INTO ' . $table_name . '_temp SELECT * FROM ' . $table_name;
$statements[] = 'DROP TABLE ' . $table_name;

preg_match('#\((.*)\)#s', $row['sql'], $matches);

$new_table_cols = trim($matches[1]);
$old_table_cols = preg_split('/,(?![\s\w]+\))/m', $new_table_cols);
$column_list = array();

foreach ($old_table_cols as $declaration)
{
$entities = preg_split('#\s+#', trim($declaration));
if ($entities[0] == 'PRIMARY')
{
continue;
}
$column_list[] = $entities[0];
}

$columns = implode(',', $column_list);

$new_table_cols = $column_name . ' ' . $column_data['column_type_sql'] . ',' . $new_table_cols;


Що це може бути?

Аватар користувача
Support
Адміністратор сайту
Повідомлень: 216
З нами з: 03 грудня 2007, 23:34
Звідки: Lutsk
Контактна інформація:

Re: Вилазить "Parse error", що це?

Повідомлення Support » 05 квітня 2013, 22:29

Спробуйте скопіювати усі файли з версії 3.0.10 з папки \includes\db на хостинг ще раз

А чому не оновлюэте до останньої 3.0.11 ?

Yelik
Повідомлень: 50
З нами з: 06 вересня 2009, 16:29

Re: Вилазить "Parse error", що це?

Повідомлення Yelik » 07 квітня 2013, 16:40

Support писав:Спробуйте скопіювати усі файли з версії 3.0.10 з папки \includes\db на хостинг ще раз
Просто попереписувати наявні файли?
Support писав:А чому не оновлюэте до останньої 3.0.11 ?
Мені здається, що правильніше спочатку розібратись з наявною проблемою, а потім оновлюватись!?

Аватар користувача
Support
Адміністратор сайту
Повідомлень: 216
З нами з: 03 грудня 2007, 23:34
Звідки: Lutsk
Контактна інформація:

Re: Вилазить "Parse error", що це?

Повідомлення Support » 07 квітня 2013, 20:38

так, перезалити файли. Я маю на увазі чому оновлювали до 3.0.10, а не відразу до 3.0.11 ???

Yelik
Повідомлень: 50
З нами з: 06 вересня 2009, 16:29

Re: Вилазить "Parse error", що це?

Повідомлення Yelik » 07 квітня 2013, 23:46

Support писав:Я маю на увазі чому оновлювали до 3.0.10, а не відразу до 3.0.11 ???
Все просто. На той момент, це було останнє оновлення.

Аватар користувача
Support
Адміністратор сайту
Повідомлень: 216
З нами з: 03 грудня 2007, 23:34
Звідки: Lutsk
Контактна інформація:

Re: Вилазить "Parse error", що це?

Повідомлення Support » 29 серпня 2013, 11:12

Версія 3.0.11 вийшла 25.08.2012, а по повідомлення від 30.03.2013.

Yelik
Повідомлень: 50
З нами з: 06 вересня 2009, 16:29

Re: Вилазить "Parse error", що це?

Повідомлення Yelik » 01 вересня 2013, 23:33

Support писав:так, перезалити файли. Я маю на увазі чому оновлювали до 3.0.10, а не відразу до 3.0.11 ???
Маєте оновлення 3.0.10? Не можу знайти його.


Yelik
Повідомлень: 50
З нами з: 06 вересня 2009, 16:29

Re: Вилазить "Parse error", що це?

Повідомлення Yelik » 02 вересня 2013, 18:19

Мені потрібно 3.0.9_to_3.0.10.

Аватар користувача
Support
Адміністратор сайту
Повідомлень: 216
З нами з: 03 грудня 2007, 23:34
Звідки: Lutsk
Контактна інформація:

Re: Вилазить "Parse error", що це?

Повідомлення Support » 02 вересня 2013, 20:53


Відповісти

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 2 гостей