table('tiki_pages'); $names = $pages->fetchColumn('pageName', []); foreach ($names as $name) { try { $pages->update(['pageSlug' => urlencode($name)], [ 'pageName' => $name, ]); } catch (Exception $e) { // Presumably, Duplicate entry found. Too bad $e->getCode() returns 0 // We need to find a pageSlug name which is not already taken // Shorten so we can add numbers afterwards in the form blabla…bla_42 from _0 to _999 $prefixPageSlug = substr(urlencode($name), 0, 156); // Strip urlencoding %xx which might have been truncated at the end if (strrpos($prefixPageSlug, '%') && strrpos($prefixPageSlug, '%') >= 154) { $prefixPageSlug = substr($prefixPageSlug, 0, strrpos($prefixPageSlug, '%')); } for ($i = 0; $i <= 999; $i++) { $pageSlug = $prefixPageSlug . "_$i"; $duplicates = $pages->fetchColumn('pageName', ['pageSlug' => $pageSlug ]); if (count($duplicates) == 0) { $pages->update(['pageSlug' => $pageSlug], ['pageName' => $name]); break; } } } } }