update lub insert bazy mysql w perlu

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 i import tabeli mysql w php

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);

Utworzenie połącznia z bazą przez stworzenia obiektu klasy PDO

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.

Klasa do połączenia z baza danych mysql

<?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”);
?>

Aktualizacja rekodów w mysql

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