Jeśli w perlu za pomocą use DBD::ODBC; robimy update rekordu czy insert z polskimi znakami powiedzmy „ł” do bazy dodaje się zamiast litery „ł” znak „?”.
Problem można ten obejść za pomocą sprytnego polecenia mysql „_latin2″ które wstawiamy przed wstawianym stringiem.
Przykład poniżej:

UPDATE klient SET branza = _latin2′Gumowe artykuły|33241|2399′ WHERE idrek = 177221312


dump:
$command = 'mysqldump -h localhost -B baza -u user -phaslo --tables Panstwa --no-create-info --skip-lock-tables --compact --comments --complete-insert > /data/dump/Panstwa.sql 2> /data/dump/err_Panstwa.txt';
exec($command);

import:
$command = 'mysql -h localhost -B baza -u user -phaslo --default-character-set=utf8 < /data/dump/Panstwa.sql';
exec($command);

kopiownie:
$sql = 'INSERT INTO Panstwa SELECT * FROM b_Panstwa';
mysql_query($sql);


try {  
 $pdo = new PDO(‘mysql:host=’.$config['db']['host'].’;dbname=’.$config['db']['database'], $config['db']['user'], $config['db']['password']);
 $pdo -> exec(„SET NAMES utf8″);

} catch (PDOException $e) {

 print „Error!: ” . $e->getMessage() . „<br/>”;
 die();
}

PDO to uniwersalny interfejs baz danych.


<?php
class DB {
 private
  $host, $base, $user, $pass, $dbconn;

 public function __construct DB($host, $base, $user, $pass) {
  $this->host = $host;
  $this->base = $base;
  $this->user = $user;
  $this->pass = $pass;
  $this->dbconn = mysql_connect($this->host, $this->user,$this->pass);
  mysql_select_db($this->base);
 }
}

$dbconn = new DB($host, $base, $user, $pass);
$result = mysql_query(„SELECT * FROM content”);
?>


exec(„mysqldump -B baza_kategorie –tables tmpl2_kategorie > tmp/kategorie.sql -u test -ptest”);


UPDATE miejscowosc,
miejscowosc_2 SET miejscowosc.gmina = miejscowosc_2.gmina,
miejscowosc.powiat = miejscowosc_2.powiat,
miejscowosc.wojewodztwo = miejscowosc_2.wojewodztwo
WHERE miejscowosc.miejscowosc = miejscowosc_2.miejscowosc