12 mar 2010

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
18 wrz 2009

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);
19 lip 2009

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");
<p class="mce_ws_kod">} catch (PDOException $e) {
<span class="mce_ws_kod"> print "Error!: " . $e->getMessage() . "<br/>";
 die();
}

PDO to uniwersalny interfejs baz danych.

26 mar 2009

Klasa do połączenia z baza danych mysql

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