Witam.
Mam na imię Tomek, lat mam 15 skończone 11 grudnia.
PHP zajmuje się parę miesięcy a OOP może miesiąc, akurat tym językiem, ponieważ uważam że on jest jak dla mnie najłtawiejszy (IMG:
style_emoticons/default/smile.gif)
Napisałem klasę MySQL w celu edukacyjnym, Proszę o ocene.
Krytyka jak najmilej widziana ( Tylko nie do przesady ). (IMG:
style_emoticons/default/smile.gif)
// +---------------------------------------------------------------------------+
// | Copyright (c) 2012 Starmi |
// +---------------------------------------------------------------------------+
class Db
{
/**
* @var array tablica zawierające dane typu host/user/base/pass itp...
*/
/**
* @var bool Czy klasa jest połączona z bazą danych
*/
var $_connect = false;
/**
* @var link Uchwyt połaczenia bazy danych
*/
var $_connect_link = null;
/**
* @var resource_id Uchwyt ostatniego zapytania mysql
*/
var $_last_query = null;
/**
* Zmienia dane w zmiennej globalnej $_params
*
* @param array|string $name klucz lub tablica
* @param string $value jeśli $name nie jest tablicą to używany tej zmiennej do przypisania wartości
* @return bool zwraca czy dane zostały poprawnie zmienione/dodane do $_params
* @acces public
*/
function setParam( $name, $value = null )
{
{
return false;
}
{
foreach($name as $key => $value)
{
{
continue;
}
$this -> _params[ $key ] = $value;
}
return true;
}
$this -> _params[ $name ] = $value; return true;
}
/**
* Funkcja pobiera dane z tablicy globalnej $_params
*
* @param array|string klucz lub tablica zawierająca klucze...
* @return array|string zwraca wyniki
* @acces public
*/
function getParam( $param = null )
{
{
foreach($param as $param_key)
{
if( isset($this->_params
[ $param_key ]) && !is_null($param_key) ) {
$_return[ $param_key ] = $this -> _params[$param_key];
}
else continue;
}
return $_return;
}
return $this -> _params[$param];
}
/**
* Funkcja odpowiadająca za łączenie z bazą danych
*
* @return bool Zwraca wynik połączenia...
* @acces public
*/
function connect()
{
$db = $this -> getParam(array('host', 'user', 'pass', 'base'));
if( ($connect_id = @mysql_connect($db['host'], $db['user'], $db['pass']) ) ) {
{
$this -> _connect = true;
$this -> _connect_link = $connect_id;
return true;
}
else
{
$this -> writeError('Nie można wybrać bazy danych...');
}
}
else
{
$this -> writeError('Nie można połączyć się z bazą danych');
}
}
/**
* Wypisuje błąd na stronie
*
* @param string $error błąd do wyświetlenia
* @return bool wysyła wartość zwróconą przez trigger_error()
*/
function writeError( $error ){
}
/**
* Wysyła zapytanie do MySQL
*
* @param string $query_string string jaki zostanie wysłany do mysql
* @param bool $fetch czy zwrócić tablice z wynikami ['fetch']
* @param bool $rows czy zwrócić ilość rekordów w bazie danych ['rows']
* @return bool|array false jeśli zapytanie się nie powiedzie, array jeśli tak
* @acces publoc
*/
function query( $query_string = null, $fetch = FALSE, $rows = FALSE )
{
{
return false;
}
unset( $this -> _last_query
); if( $query = @mysql_query($query_string, $this->_connect_link
) ) {
$this -> _last_query = $query;
switch( TRUE )
{
case $fetch:
break;
case $rows:
break;
}
$_return['handle'] = $this -> _last_query;
return $_return;
}
else
{
$this -> writeError( 'Nie można wykonać zapytania mysql </br>Zapytanie: ' . $query_string );
}
}
/**
* Dodaje rekord do bazy danych
*
*
* @param string $table tabela do jakies ma zostać dodany rekord
* @param array $insert_data dane jakie zostaną dodane np: array('kolumna' => 'wartość')
*/
function insert( $table, $insert_data )
{
$this -> query( sprintf("INSERT INTO `%s` (`%s`) VALUES(\"%s\")", $table,
)));
}
}
/** Przykład użycia... **/
$db = new Db();
$db -> setParam('host', 'localhost');
$db -> setParam('pass', '');
$db -> setParam('user', 'root');
$db -> setParam('base', 'test');
$db -> connect();