Pogledajte određenu poruku
Staro 12. 04. 2008.   #3
misko_
profesionalac
Qualified
 
Datum učlanjenja: 22.09.2007
Lokacija: Split
Poruke: 111
Hvala: 8
39 "Hvala" u 10 poruka
misko_ is on a distinguished road
Thumbs up Rijeseno i hvala

NIje mi se dalo zezati sa iconv funkciju, nego sam cijelu bazu(sva polja, tablice, i samo zabtu prebacio u utf8) za to sam se pomogao kod(nije mi se dalo rucno)

PHP kôd:
<?php
$db 
mysqli_connect('localhost','username','password''db');
if(
mysqli_connect_errno())

    echo 
"Cannot connect to the database - incorrect details";
}

$sql 'SHOW TABLES';
if ( !( 
$result $db->query$sql ) ) ) {
       echo 
'<span style="color: red;">Get SHOW TABLE - SQL Error: <br>' "</span>\n";
    }

   
while ( 
$tables $result->fetch_row() ) {
    echo 
$tables[0];
# Loop through all tables in this database
   
$table $tables[key($tables)];
  
   if ( !( 
$result2 $db->query("ALTER TABLE ".$table." COLLATE utf8_general_ci") ) ) {
        echo 
'<span style="color: red;">UTF SET - SQL Error: <br>' "</span>\n";
     
          break;
           }
  
   print 
"$table changed to UTF-8 successfully.<br>\n";

   
# Now loop through all the fields within this table
   
if ( !($result2 $db->query("SHOW COLUMNS FROM ".$table) ) ) {
          echo 
'<span style="color: red;">Get Table Columns Query - SQL Error: <br>' "</span>\n";
     
          break;
           }

   while ( 
$column $result2->fetch_assoc() )
   {
      
$field_name $column['Field'];
      
$field_type $column['Type'];
     
      
# Change text based fields
      
$skipped_field_types = array('char''text''enum''set');
     
      foreach ( 
$skipped_field_types as $type )
      {        
         if ( 
strpos($field_type$type) !== false )
         {
            
$sql4 "ALTER TABLE $table CHANGE `$field_name` `$field_name$field_type CHARACTER SET utf8 COLLATE utf8_general_ci";
            
$result4 $db->query($sql4);

            echo 
"---- $field_name changed to UTF-8 successfully.<br>\n";
         }
      }
   }
   echo 
"<hr>\n";
}
$result->free();
$result2->free();
$result4->free();
?>
koji sam pronasao medu komentarima na http://dev.mysql.com/doc/refman/5.0/...onnection.html

jos bi nadodao da stari unosi koji su bili uneseni u "latin1_swedish_ci" nisu prikazivali neka slova kako treba, pa sam to rucne prebacio(jer ih nije bilo puno), ali sma siguran da bi se i za to dala napisati kakva skripta...
misko_ je offline   Odgovorite uz citat