Invision Community 4: SEO, prepare for v5 and dormant account notifications Matt November 11, 2024Nov 11
Posted October 19, 20222 yr Attempting to update UTF8, and we get an error as follows (full command line output below) with a PHP8 install Error: count(): Argument #1 ($value) must be of type Countable|array, null given File: /system/Convert/Convert.php Line: 552 Would appreciate guidance on how to proceed. Thanks. ------------- % php cli.php --info IP.Board Character Set: iso-8859-1 Database Character Set: latin1 Original table prefix: ibf_ Converted table prefix: x_utf_ibf_ 190 tables are latin1 190 tables have incorrect collations Can use 'dump' method: true % % php cli.php ---------------------------------------------------- Welcome to the IPS UTF8 Conversion utility (v1.1.20) ---------------------------------------------------- This utility will convert all the tables in this database to UTF-8. The converted data is inserted into new tables prefixed with x_utf_ and the original data kept. You have a conversion session unfinished. The session was last updated on Wed 19 October 2022 and has processed 43 tables (1%) so far. [c] Enter 'c' to continue [x] Enter 'x' to reset and start the conversion again. x Are you sure? This will re-start the conversion [y] Enter 'y' to re-start the conversion [c] Enter 'c' to continue the conversion. y ---------------------------------------------------- Welcome to the IPS UTF8 Conversion utility (v1.1.20) ---------------------------------------------------- 190 table(s) are not UTF-8 and need converting. This utility will convert all the tables in this database to UTF-8. The converted data is inserted into new tables prefixed with x_utf_ and the original data kept. Press enter to continue Processing: cache_store 1% Error: count(): Argument #1 ($value) must be of type Countable|array, null given File: /system/Convert/Convert.php Line: 552 %
October 19, 20222 yr From the command line, run "php -v". What version is it reporting? Several folks have reported problems with the CLI version of PHP being different. Meaning just "php" might return PHP 7.2 whereas php80 is needed for PHP8. If it's not that issue, one of the staff would have to help further. 🙂
October 19, 20222 yr Author % php -v PHP 8.0.24 (cli) (built: Sep 29 2022 13:47:46) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.24, Copyright (c) Zend Technologies %
October 19, 20222 yr Author As an update, I have also used MyPHPadmin to drop all of the x_utf_ entries, in the hope that it would get a fresh start from the CLI, but get the same message.
October 19, 20222 yr Author In the event the info helps, here are the x_utf tables that were generated, in the event it gives a better explanation of where the process is stopping at.
October 19, 20222 yr Please be advised I have moved this to a ticket so that we can take a closer look at what is happening. Please check your email inbox for further instructions.
October 29, 20222 yr I have the same problem: # php cli.php ---------------------------------------------------- Welcome to the IPS UTF8 Conversion utility (v1.1.20) ---------------------------------------------------- 199 table(s) are not UTF-8 and need converting. This utility will convert all the tables in this database to UTF-8. The converted data is inserted into new tables prefixed with x_utf_ and the original data kept. Press enter to continue Processing: cache_store 1% Error: count(): Argument #1 ($value) must be of type Countable|array, null given File: /system/Convert/Convert.php Line: 552 I tried restart, but that wasnt helped. # php -v PHP 8.0.20 (cli) (built: Jun 8 2022 00:33:06) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.20, Copyright (c) Zend Technologies with Zend OPcache v8.0.20, Copyright (c), by Zend Technologies
October 29, 20222 yr The error here with the OP, after further investigation, turned out being something with the MySQL server not executing in time a proper SHOW TABLES query. Could you please try this process again?
October 29, 20222 yr 32 minutes ago, Jim M said: The error here with the OP, after further investigation, turned out being something with the MySQL server not executing in time a proper SHOW TABLES query. Could you please try this process again? The same error. Attached the log: error_2022-10-29.cgi
October 29, 20222 yr 19 minutes ago, Seirei said: The same error. Attached the log: error_2022-10-29.cgi 5.3 kB · 1 download We would need to look further into this for you, however the access details on file appear to be incorrect or missing. Could you please update these details by visiting your client area, selecting the relevant purchase, then clicking "Review/Update Access Information" under the "Stored Access Information" section. We look forward to further assisting you.
October 29, 20222 yr 25 minutes ago, Jim M said: We look forward to further assisting you. I updated my access information.
October 29, 20222 yr 7 minutes ago, Seirei said: I updated my access information. Reviewing your server details, I would recommend trying our 4.7.4 beta 2 which is out now in the Client Area as this includes some fixes to the UTF8 converter which may help you proceed past this.
October 29, 20222 yr 5 hours ago, Jim M said: Reviewing your server details, I would recommend trying our 4.7.4 beta 2 which is out now in the Client Area as this includes some fixes to the UTF8 converter which may help you proceed past this. It helped, but progress stucks on table 'search_keywords' with error: Error: Specified key was too long; max key length is 1000 bytes File: /system/Db/Db.php Line: 198 an_search_keywords.sql error_2022-10-29.cgi
October 29, 20222 yr 55 minutes ago, Seirei said: It helped, but progress stucks on table 'search_keywords' with error: Error: Specified key was too long; max key length is 1000 bytes File: /system/Db/Db.php Line: 198 an_search_keywords.sql 1.36 kB · 1 download error_2022-10-29.cgi 4.32 kB · 0 downloads Are you using InnoDB and dynamic row format?
October 29, 20222 yr 59 minutes ago, Jim M said: Are you using InnoDB and dynamic row format? No, I use MyISAM as storage engine for tables.
October 30, 20222 yr You may wish to convert to InnoDB to see if this helps. MyISAM is limited to 1000 bytes, whereas InnoDB is limited to ~3000. Be sure to utilize the Dynamic row format as well.