utworzyłem sobie prosty skrypt, do przerzucenia danych pomiędzy bazami, który sprawdza czyw baza_a jest tabela memo_xxxx i jak jest to tworzy pustą tabelę memo_xxx w baza_b i zapełnia ją danymi. Odpalam go w konsoli.
Wszystko działa ale w trakcie przerzutu danych, w tabeli docelowej w kolumnie products_description pojawiają się znaki '?' zamiast polskich znaków:
function TableExists($tablename, $db, $link) { for ($i=0;$i<$rcount;$i++) { } return false; } // połączenie z bazą 'baza_a: // połączenie z bazą 'baza_b: for($i = 1;$i < 4650; $i++){ if($i < 10) $id = '000'.$i; elseif($i >= 10 && $i < 100) $id = '00'.$i; elseif($i >= 100 && $i < 1000) $id = '0'.$i; else $id = $i; if(TableExists("memo_$id",'baza_a', $link_a)){ $sql = "select * from memo_$id"; if(!TableExists("memo_$id",'baza_b', $link_b)){ `id_typu` int(6) NOT NULL default '0', `products_id` int(6) NOT NULL default '0', `products_description` text, `done` binary(1) NOT NULL default '0', `data` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `language_id` int(2) NOT NULL default '19', PRIMARY KEY (`id_typu`,`products_id`,`language_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;", $link_b)){ } } $sql = "insert ignore into memo_$id (id_typu, products_id, products_description, language_id) values('".$rec['id_typu']."', '".$rec['products_id']."', '".addslashes($rec['products_description'])."', '".$rec['language_id']."')"; } }else{ } }
ma ktoś z Was pomysł jak temu zapobiec?
problem rozwiązany - utworzona baza_b miała domyślnie ustawioną stronę kodową latin1. Po zmianie na utf8 problem ustapił