@digger,
As you said, PHP 5.6 with old MySQL/MariaDB extension partially works. Even so the converter did not do its job completely.
This is what I did so far:
1. Comment out functions that contains SQL_MAX_JOIN_SIZE in convert.php
diff -u original_convert.php changed_convert.php
// Attempt to allow big selects, only for mysql so far though.
- if ($smcFunc['db_title'] == 'MySQL')
- {
- $results = $smcFunc['db_query']('', "SELECT @@SQL_BIG_SELECTS, @@SQL_MAX_JOIN_SIZE", 'security_override');
- list($big_selects, $sql_max_join) = $smcFunc['db_fetch_row']($results);
+ //if ($smcFunc['db_title'] == 'MySQL')
+ //{
+ // $results = $smcFunc['db_query']('', "SELECT @@SQL_BIG_SELECTS, @@SQL_MAX_JOIN_SIZE", 'security_override');
+ // list($big_selects, $sql_max_join) = $smcFunc['db_fetch_row']($results);
// Only waste a query if its worth it.
- if (empty($big_selects) || ($big_selects != 1 && $big_selects != '1'))
- $smcFunc['db_query']('', "SET @@SQL_BIG_SELECTS = 1", 'security_override');
+ // if (empty($big_selects) || ($big_selects != 1 && $big_selects != '1'))
+ // $smcFunc['db_query']('', "SET @@SQL_BIG_SELECTS = 1", 'security_override');
// Lets set MAX_JOIN_SIZE to something we should
- if (empty($sql_max_join) || ($sql_max_join == '18446744073709551615' && $sql_max_join == '18446744073709551615'))
- $smcFunc['db_query']('', "SET @@SQL_MAX_JOIN_SIZE = 18446744073709551615", 'security_override');
- }
+ // if (empty($sql_max_join) || ($sql_max_join == '18446744073709551615' && $sql_max_join == '18446744073709551615'))
+ // $smcFunc['db_query']('', "SET @@SQL_MAX_JOIN_SIZE = 18446744073709551615", 'security_override');
+ //}
// Attempt to allow big selects, only for mysql so far though.
- if ($smcFunc['db_title'] == 'MySQL' && (trim($db_errno) == 1104 || strpos($db_error, 'use SET SQL_BIG_SELECTS=1') !== false))
- {
- $results = $smcFunc['db_query']('', "SELECT @@SQL_BIG_SELECTS, @SQL_MAX_JOIN_SIZE", 'security_override');
- list($big_selects, $sql_max_join) = $smcFunc['db_fetch_row']($results);
+ //if ($smcFunc['db_title'] == 'MySQL' && (trim($db_errno) == 1104 || strpos($db_error, 'use SET SQL_BIG_SELECTS=1') !== false))
+ //{
+ // $results = $smcFunc['db_query']('', "SELECT @@SQL_BIG_SELECTS, @SQL_MAX_JOIN_SIZE", 'security_override');
+ // list($big_selects, $sql_max_join) = $smcFunc['db_fetch_row']($results);
// Only waste a query if its worth it.
- if (empty($big_selects) || ($big_selects != 1 && $big_selects != '1'))
- $smcFunc['db_query']('', "SET @@SQL_BIG_SELECTS = 1", 'security_override');
+ // if (empty($big_selects) || ($big_selects != 1 && $big_selects != '1'))
+ // $smcFunc['db_query']('', "SET @@SQL_BIG_SELECTS = 1", 'security_override');
// Lets set MAX_JOIN_SIZE to something we should
- if (empty($sql_max_join) || ($sql_max_join == '18446744073709551615' && sql_max_join == '18446744073709551615'))
- $smcFunc['db_query']('', "SET @@SQL_MAX_JOIN_SIZE = 18446744073709551615", 'security_override');
+ // if (empty($sql_max_join) || ($sql_max_join == '18446744073709551615' && sql_max_join == '18446744073709551615'))
+ // $smcFunc['db_query']('', "SET @@SQL_MAX_JOIN_SIZE = 18446744073709551615", 'security_override');
// Try again.
- $result = $smcFunc['db_query']('', $string, 'security_override');
+ // $result = $smcFunc['db_query']('', $string, 'security_override');
- if ($result !== false)
- return $result;
- }
+ // if ($result !== false)
+ // return $result;
+ //}
2. Remove some parameters(?) form phpbb3_to_smf.sql file
diff -u original_phpbb3_to_smf.sql changed_phpbb3_to_smf.sql
- SUBSTRING(u.user_from, 1, 255) AS location,
+ '' AS location,
- SUBSTRING(u.user_msnm, 1, 255) AS msn,
- SUBSTRING(u.user_aim, 1, 16) AS aim,
- SUBSTRING(u.user_icq, 1, 255) AS icq,
- SUBSTRING(u.user_yim, 1, 32) AS yim,
- SUBSTRING(u.user_website, 1, 255) AS website_title,
- SUBSTRING(u.user_website, 1, 255) AS website_url,
+ '' AS msn,
+ '' AS aim,
+ '' AS icq,
+ '' AS yim,
+ '' AS website_title,
+ '' AS website_url,
- f.forum_id AS id_board, CASE WHEN f.parent_id = c.temp_id THEN 0 ELSE f.parent_id END AS id_parent, f.left_id AS board_order, f.forum_posts AS num_posts,
+ f.forum_id AS id_board, CASE WHEN f.parent_id = c.temp_id THEN 0 ELSE f.parent_id END AS id_parent, f.left_id AS board_order, '' AS num_posts,
- SUBSTRING(f.forum_desc, 1, 65534) AS description, f.forum_topics AS num_topics, f.forum_last_post_id AS id_last_msg
+ SUBSTRING(f.forum_desc, 1, 65534) AS description, '' AS num_topics, f.forum_last_post_id AS id_last_msg
u.user_{msnm, aim, icq, yim, website}, u.user_from is not important but f.forum_posts and f.forum_topics are important datas. These are errors I get if I do not change phpbb3_to_smf.sql file:
Unsuccessful! Database error message:
Unknown column 'u.user_from' in 'field list'
Unsuccessful! Database error message:
Unknown column 'u.user_msnm' in 'field list' # and friends
* Converting boards...
Unsuccessful! Database error message:
Unknown column 'f.forum_posts' in 'field list
* Converting boards...
Unsuccessful! Database error message:
Unknown column 'f.forum_topics' in 'field list'
And this is whre I am stuck:
Starting Conversion
* Converting ranks...
Successful.
* Converting groups...
Successful.
* Converting members...
Successful.
* Converting additional member groups...
Successful.
* Preparing for categories conversion...
Successful.
* Converting categories...
Successful.
* Converting boards...
Wrong value type sent to the database. Integer expected. (num_posts)