Napisałem własny sterownik bazy danych (Moja 2 klasa proszę być wyrozumiałym).
<?php
/**************************************
Klasa do obsługi mysql, stworzona
przez Helid'a
email: matinowakma@gmail.com
Wszystkie prawa zastrzeżone.
Licencja dla gry Night Racers.
***************************************/
class db
{
/**
Połączenie mysql
**/
private $polaczenie = '';
/**
Baza danych
**/
private $baza = '';
/**
Indyfikator zapytania
**/
private $zapytanie = '';
/**
Ilość zapytań
**/
public $queries = '0';
/**
Ilość wystąpinoych błędów w zapytaniach
**/
private $bledy = '0';
/**
Konstruktor klasy
Odpowiadajacy za połączenie
**/
public function __construct($dbhost, $dbuser, $dbpass, $db)
{
if($this->polaczenie)
{
if(!$this->baza)
{
echo 'Wystąpił bug z wyborem bazy danych'; }
} else {
echo 'Wsytąpił bug z połaczeniem mysql'; }
}//koniec __construct
/**
Funkcja odpowiada za zapytanie.
**/
public function query ($dbzapytanie) {
$this->zapytanie = '';
$this->zapytanie = @mysql_db_query($this->baza, $dbzapytanie, $this->polaczenie); if (!$this->zapytanie) {
$this->bledy++;
echo 'Wystąpił bug z zapytaniem. '; } else {
$this->queries++;
return $this->zapytanie;
}
} //end query
/**
* mostid - zwraca numer ID wygenerowny podczas ostatniej operacji dodowania rekordu
*/
private function mostid()
{
} //end mostid
/**
Automatyczne zamykanie połączenia z mysql
**/
public function __destruct()
{
if(!$zamykanie)
{
echo 'Podczas zamykania połączenia wystąpił błąd'; } //end __destruct
}
private function error($zapytanie = '' )
{
if($zapytanie == '' )
{
echo '<br />Baza danych zwróciła komunikat o błędzie numer <b>' . mysql_errno() . '</b> i zawierającą błąd zapytania - <b><font color="red">' . mysql_error() . '</font></b><br />'; }
else
{
echo '<br />Baza danych zwróciła komunikat o błędzie numer <b>' . mysql_errno() . '</b> i zawierającą błąd zapytania - <b>' . mysql_error() . '</b>.<br />Błąd wystąpił w zapytaniu : <b><font color="red">' . $zapytanie . '</b></font><br />'; }
} //end error();
/**
Pobranie danego rekordu
**/
public function fetcharray($zap)
{
if(!$fetch)
{
$this->bledy++;
}
else
{
return $fetch;
}
} //end fetchrow
/**
Zlicza ilość rekordów
*/
public function NumRows()
{
if(!$zlicz)
{
echo 'Wystąpił bug ze zliczaniem wierszy.'; }
else
{
return $zlicz;
}
} //end NumRows
}
?>
Przykład użycia:
<?php
/**********************************
Test stweronika db napisanego
przez Helid'a
***********************************/
include 'sql_drivers/mysql.php';
$db = new db( 'sql.boo.pl' , '%%%', '%%%', '%%%' );// % = moje dane
$objResult = $db->query( 'SELECT * FROM users where login=`helid`' );
while($arrTab = $db->fetcharray($objResult))
{
}
?>
I wygląda to tak, że wywala bug:
Wystšpił bug z zapytaniem.
Fatal error: Call to a member function fetcharray() on a non-object in /home/accounts_h/helid/public_html/game/ex.php on line 9
Demo na:
http://nightracers.pl/ex.phpSzukałem rozwiązań, ale nie znazłem, co jest źle?
UWAGA ODŚWIEŻYLEM SKRYPT, POPRAWIŁEM 1 BUG.
Ten post edytował Helid 5.03.2008, 20:34:13