Pogledajte određenu poruku
Staro 31. 10. 2008.   #30
Djuki
profesionalac
Professional
 
Avatar Djuki
 
Datum učlanjenja: 09.06.2005
Lokacija: Pancevo
Poruke: 251
Hvala: 60
47 "Hvala" u 34 poruka
Djuki is on a distinguished road
Pošaljite ICQ poruku za Djuki Pošaljite poruku preko Skype™ za Djuki
Arrow

Malo kasno za Peđu ali možda će koristiti ostalima. I ja sam imao isto problem na jednom od blogova, pa evo kako sam to rešio.


Funkcija koja konvertuje sve atribute u svim tabelama u bazi u UTF-8;
Citat:
$sql = 'SHOW TABLES';
if ( !( $result = mysql_query( $sql ) ) ) {
echo '<span style="color: red;">Get SHOW TABLE - SQL Error: <br>' . "</span>\n";
}


while ( $tables = mysql_fetch_array($result) ) {
echo $tables[0];
# Loop through all tables in this database
$table = $tables[key($tables)];
/*$sql_alter = ("ALTER TABLE ". $table ." COLLATE utf8_general_ci");
if ( !( $result2 = mysql_query($sql_alter) ) ) {
echo '<span style="color: red;">UTF SET - SQL Error: <br>' . "</span>\n".$sql_alter;

break;
}

print "$table changed to UTF-8 successfully.<br>\n";*/

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

break;
}
$sql_pk = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.STATISTICS
WHERE INDEX_NAME='PRIMARY'

AND TABLE_NAME='" . $table ."'";
if ($respk = mysql_query($sql_pk)) echo "sql dobar";
$setpk= mysql_fetch_array($respk);
echo "set: ".$setpk[0];
//print_r($setpk);

while ( $column = mysql_fetch_array( $result2 ) )
{
$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_bin";
$result4 = mysql_query($sql4);

echo "---- $field_name changed to UTF-8 successfully.<br>\n".$sql4;*/
//echo $field_name. "<br>";
$sql_get = "SELECT " .$setpk[0]. "," .$field_name ." FROM ".$table;
$res_get = mysql_query($sql_get);
while ($set = mysql_fetch_array($res_get)) {
$update = "UPDATE ".$table." SET ".$field_name."='".iconv('UTF-8', 'windows-1250', $set[1])."'
WHERE " .$setpk[0] ."=".$set[0].";";
//echo"<br>".$update."<br>";
if (mysql_query($update)) echo "Izmenjen<br>";
else "nije izmenjen<br>";
}
}
}
}
echo "<hr>\n";
}
__________________
Blog | Facebook | Twitter | PHP Srbija
Djuki je offline   Odgovorite uz citat