Witam,
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)){
echo "tabela memo_$id utworzona"."\r\n"; }
}
$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{
echo "brak tabeli memo_$id"."\r\n"; }
}
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ł
Ten post edytował kurt 21.09.2015, 17:12:02