Mateusz Mazurek – programista z pasją

Python, architektura, ciekawostki ze świata IT

Programowanie Programowanie webowe

[PHP] Prosta klasa do obsługi MySql

Cześć! Cieszę się, że mnie odwiedziłeś/aś. Zanim przejdziesz do artykułu chciałbym zwrocić Ci uwagę na to, że ten artykuł był pisany kilka lat temu (2012-07-29) miej więc proszę na uwadzę że rozwiązania i przemyślenia które tu znajdziesz nie muszą być aktualne. Niemniej jednak zachęcam do przeczytania.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
class db{

private $db_user="root"; //user bazy danych
private $db_pass=""; //haslo
private $db_host="locadlhost"; //host
private $db_db="testowa"//baza danych do ktorej sie logujemy
private $db_charser="utf-8"; //kodowanie znakow
private $res; // #resource

public function __construct(){

$this->res=mysql_connect($this->db_host,$this->db_user,$this->db_pass);//laczymy sie z baza danych
if($this->res== false) //jesli sie nie udalo
throw new Exception('Blad polaczenia z baza: '.mysql_error()); //rzucamy wyjatek

mysql_select_db($this->db_db, $this->res);//wybieramy baze danych
mysql_set_charset($this->db_charser,$this->res); //ustawiamy kodowanie
}

public function select($what, $from, $others=""){ // do wybierania z bazy baych informacji. Zwraca tablice.
/*

$what = co pobieramy z bazy (string)

$from = z jakiej tabeli

$others daje mozliwosc dodania np klauzuli WHERE

*/

$s="SELECT $what from $from $others";//tworzymy
$t=mysql_query($s,$this->res);//wykonujemy zapytanie

if($t== false)// jesli sie nie powiodło
throw new Exception('Blad zapytania (SELECT) : '.mysql_error());//rzucamy wyjatek
while($r=mysql_fetch_object($t) )//przepisujemy cala tablice z bazy danych na jedna tablice
{

$g[]=$r;

}

return $g;// zwracamy utworzona tablicey

}

public function insert( $where, $values=""){//dodawanie do bazy danych.
/*

$where - gdzie

$values - wartosci do dodania w formaie stringa w forime '$param1','$param2','$param3','$param4'
*/

$s="INSERT INTO $where VALUES($values)";//zapytanie
$t=mysql_query($s,$this->res);//wywolujemy zapytanie
if($t== false)//jesli sie nie powiodlo
throw new Exception('Blad zapytania: (INSERT) '.mysql_error());//rzucamy wyjatek
return mysql_affected_rows ($this->res);//zwracany ilosc dodanych rekordow

}

public function del( $from, $where){//usuwanie z bazy danych

/*

$from - skad

$where - gdzie

*/


$s="DELETE FROM $from WHERE $where";//zapytanie
$t=mysql_query($s,$this->res);//wywolujemy je
if($t== false)//jesli nie poszlo
throw new Exception('Blad zapytania: (DELETE) '.mysql_error());//rzucamy wyjatek
return mysql_affected_rows ($this->res);//zwracamy ilosc usunietych

}

public function update( $from, $what, $where){//poprawianie danych
/*

$from - skad

$what - co (string lub array)

$where - gdzie

*/

if(is_array($what)){//jesli what to tablica
$s="UPDATE $from SET "; //poczatek zapytania
foreach ($what as $r=>$t){

$s.=" $r='$t',";//sklejamy

}
$s = substr($s,0,strlen($s)-1);//usuwamy ostatni zbedny przecinek
$s.=" WHERE $where";//doklejmy reszte

}//jesli jest stringiem
else
$s="UPDATE $from SET $what WHERE $where";//wklejmy do zapytania
$t=mysql_query($s,$this->res);//wykonjemy zapytanie
if($t== false)//jesli nie dalo rady
throw new Exception('Blad zapytania: (UPADATE) '.mysql_error());//rzucamy wyjatek
return mysql_affected_rows ($this->res);//ilosc przetworzonych wierszt

}

public function __destruct(){//niszczenie instancji klasy

mysql_close($this->res);//zamykamy polaczenie.

}

}

Założmy że mamy tabele testy, wypisanie wszystkich rekordow moglibysmy zrealizowac takim kodem:

1
2
3
4
5
6
7
$instacja = new db();

foreach($instacja->select("*", "testy") as $a){

$a->imie.'<br>';

}
Dzięki za wizytę,
Mateusz Mazurek

A może wolisz nowości na mail?

Subskrybuj
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

1 Komentarz
Inline Feedbacks
View all comments