Guest User

Untitled

a guest
May 27th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. <?php
  2. $sql = '';
  3. $pdo = Propel::getConnection();
  4.  
  5. $stmt = $pdo->query('SHOW FULL TABLES');
  6. $tables = $stmt->fetchAll(PDO::FETCH_NUM);
  7.  
  8. foreach($tables as $tbl) {
  9. $tblName = $tbl[0];
  10.  
  11. if('BASE TABLE' !== $tbl[1]) {
  12. continue;
  13. }
  14.  
  15. $columns = $pdo->query("DESCRIBE `$tblName`")->fetchAll(PDO::FETCH_ASSOC);
  16.  
  17. $partBinary = array();
  18. $partUtf8 = array();
  19.  
  20. foreach($columns as $col) {
  21.  
  22. $colName = $col['Field'];
  23. $colType = $col['Type'];
  24.  
  25. if(preg_match('/^(TEXT|VARCHAR|CHAR).*/i', $colType)) {
  26. $partBinary[] = "MODIFY `$colName` $colType CHARACTER SET binary";
  27. $partUtf8[] = "MODIFY `$colName` $colType CHARACTER SET utf8 COLLATE utf8_general_ci";
  28. }
  29. }
  30.  
  31. if(count($partBinary)) {
  32. $sql .= "ALTER TABLE `$tblName` " .PHP_EOL . "\t" . join(', ' . PHP_EOL . "\t" , $partBinary) . PHP_EOL . ';'. PHP_EOL. PHP_EOL;
  33. $sql .= "ALTER TABLE `$tblName` " .PHP_EOL . "\t" . join(', ' . PHP_EOL . "\t" , $partUtf8) . PHP_EOL . ';'. PHP_EOL. PHP_EOL;
  34. }
  35. }
  36.  
  37. echo $sql;
Add Comment
Please, Sign In to add comment