BABBAMedlem sedan feb. 2000280 inlägg
Hej
Jag använder en klass för att ansluta mot en mysql databas men det fungerar dåligt. Använder jag en likvärdig funktion fungerar det som det ska. Min kod:
class Db
{
var $host;
var $username;
var $password;
var $database;
var $table;
var $conn;
var $lastQuery;
function connect($host,$username,$password)
{
$this->host = $host;
$this->username = $username;
$this->password = $password;
if(!$this->conn = mysql_connect($host,$username,$password))
die("Could not connect to the database!");
return $this->conn;
}
function select($database)
{
$this->database = $database;
if(!mysql_select_db($database))
die("Could not select the database: $this->database");
}
function query($query)
{
$this->lastQuery = $query;
if(!$result = mysql_query($this->conn, $this->lastQuery))
die("Could not execute the query: $this->lastQuery");
return $result;
}
}
Om jag anropar den på följande sätt (förutsatt att klassen är inkluderad):
$db = new Db;
$db->connect("127.0.0.1","babba","password");
$db->select("babba");
Jag får följande fel:
Warning: Access denied for user: 'xxxxxx@localhost' (Using password: NO) in /home/babba/www/classes/db.class.php on line 27
(fel)
Warning: MySQL Connection Failed: Access denied for user: 'xxxxxx@localhost' (Using password: NO) in /home/babba/www/classes/db.class.php on line
Någon som ser vad jag har missat?
Fredde MannenMedlem sedan nov. 20013 498 inlägg
DU har inte gett $username och $pasword något värde, så vida det inte finns i någon annan fil som du inkluderar!!!
Det ska väl vara typ nåt sånt här:
var $host = "localhost";
var $username = "användarnamn";
var $password = "lösenord";
hittatde ju inga värden till de variablar du hade satt ut!!
Kanske har fel men.... skål i alla fall :birp
BABBAMedlem sedan feb. 2000280 inlägg
Funkar det inte om jag kör:
$db->connect("127.0.0.1","babba","password");
då?
BABBAMedlem sedan feb. 2000280 inlägg
Jag provade att göra som du sa men jag fick samma fel även där..
BABBAMedlem sedan feb. 2000280 inlägg
Verkar som om det löser sig...har en liten bugg tidigare i min kod som ställde till det.
tack för hjälpen
nillMedlem sedan okt. 2001387 inlägg
En fråga. Vad är fördelen med att ha funktionerna i en klass på sättet beskrivit här och inte bara att funktionerna fritt?
I koden:
$db = new Db;
$db->connect("127.0.0.1","babba","password");
$db->select("babba");
ska man förstöra objektet på något sätt efter man använt det? i så fall hur?
BABBAMedlem sedan feb. 2000280 inlägg
Vad är fördelen med att ha funktionerna i en klass på sättet beskrivit här och inte bara att funktionerna fritt?
Fördelarna med OOP är väldigt många, men jag kan kanske hålla med att man vid mindre projekt kanske inte ser fördelen med att köra objektorienterad PHP..
Jag har iaf aldrig förstört något objekt i php, det tror jag inte behövs. Någon annan som har någon åsikt?
pimmeMedlem sedan sep. 2001553 inlägg
BABBA: det är alltid snyggast att snygga upp efter sig
:)
BABBAMedlem sedan feb. 2000280 inlägg
pimme, mm lätt att det är men jag vet inget sätt i php att sköta skräphanteringen på..alltså, back to core, någon som vet?
nillMedlem sedan okt. 2001387 inlägg
Jag ska i dagarna börja koda ett störra projekt i php och överväger att använda klasser och dylikt.
Har använt klasser i java men har svårt att se den stora vinningen i att göra det annat än man ska skapa lister med t ex"manniskor" som javaboken tycker så mycket om.
Om det nu är snyggt att städa upp efter sig skulle jag gärna också vilja veta hur.
Skulle också vilja ha tips på var jag kan finna hela exempel på klass- och objektanvändning på phpsidor.
pimmeMedlem sedan sep. 2001553 inlägg
Note: There are no destructors in PHP 3 or PHP 4. You may use register_shutdown_function() instead to simulate most effects of destructors
tyvärr :(
BABBAMedlem sedan feb. 2000280 inlägg
mm det var det jag trodde..
men du nill, jag rekommenderar dig ändå att köra med klasser, det blir väldigt cleant och det är ju som bekant bra.
Du kan läsa lite om OOP med PHP på phpbuilder:
http://www.phpbuilder.com/columns/index.php3?cat=6&subcat=38
lycka till
nillMedlem sedan okt. 2001387 inlägg
Tack...
Har skummat igenom lite men verkar inte vara riktigt vad jag är ute efter.
Jag är ute efter något som beskriver hur man optimalt använder en sådan klass som BABBAS i denna tråds första inlägg.
Det jag inte riktigt förstår är att ska man då första gången man ska göra något databasanrop skriva:
$db = new Db;
$db->connect("127.0.0.1","babba","password");
och sen lite select och querys. Om man då har lite html kod efter det och sen behöver göra fler select och querys osv...
En fullständig phplösning som använder klasser alltså. Om inte annat kan du väl posta lite hur du har använt din klass BABBA?
En annan fråga. Ska man ha alla sina klasser i en inklude-fil som inkluderas på varje sida eller ska man inkludera en klass på de sidor där den behövs ?
inkluderar man klasser med require eller include?