Avatar billede dank Nybegynder
28. februar 2004 - 15:30 Der er 11 kommentarer og
1 løsning

connecte til MySQL (oo begynder)

Jeg prøver at forstå/lege bare et minimum af oo og har følgeende kode

<?
$con = new Db;
$con -> sethost("host");
$con -> setuser("user");
$con -> setpass("pass");

$con -> connect();

class Db
{
var $host;
var $database;
var $password;
var $username;

function sethost($newHost)
        {
        $this -> host = $newHost;
        }

function gethost()
        {
        return $this -> host;
        }

function setuser($newUsername)
        {
        $this -> uasername = $newUsername;
        }

function setpass($newPassword)
        {
        $this -> password = $newPassword;
        }

function connect()
        {
        return this -> mysql_connect(host,username,password);
        }

}
?>


Jeg får parse error pga linien med mysql_connect

Nogen der kan hjælpe mig lidt videre?
Avatar billede htm Nybegynder
28. februar 2004 - 15:35 #1
mysql_connecet er da ikke et medlem af klassen connect. Derfor skal den nok se sådan ud:

return mysql_connect($this->host,$this->username,$this->password);
Avatar billede dank Nybegynder
28. februar 2004 - 15:36 #2
Der skulle stå

return $this -> mysql_connect(host,username,password);

Men nu får jeg så:

Fatal error: Call to undefined function:  mysql_connect() in /home/oo/test.php on line 39
Avatar billede dank Nybegynder
28. februar 2004 - 15:39 #3
htm> ok det kan jeg så godt se.. Det virker også næsten nu.. får dog en fejl idet den forsøger at connecte som root@dbhost selvom jeg sætter min bruger via setuser;

Jeg lærer det nok aldrig ... :)
Avatar billede htm Nybegynder
28. februar 2004 - 15:40 #4
Du skal også lige stave rigtigt i setuser :-)

kan du selv se det ?
$this -> uasername = $newUsername;
Avatar billede dank Nybegynder
28. februar 2004 - 15:42 #5
hehe.. tak. for hjælpen.. der kommer nok nogle flere oo spørgsmål fra mig, da det er helt nyt og temmeligt svært at forstå for en lille hobby programmør som mig :)
Avatar billede dank Nybegynder
28. februar 2004 - 15:43 #6
Hvis jeg iøvrigt gør således:

echo $con -> connect();

så får jeg svaret:

Resource id #4

Hvordan tester jeg om connection er ok?
Avatar billede htm Nybegynder
28. februar 2004 - 15:45 #7
Ja nu er jeg jo også meget nybegynder i klasser, men syntes ikke det er så svært som jeg syntes en gang.

Som du ser på manualen til mysql_connect - returnerer den resource ID ved succes connect, og false ved fejl.

http://dk2.php.net/mysql_connect
Avatar billede dank Nybegynder
28. februar 2004 - 15:53 #8
ok. Det kan jeg godt se..

if ($con -> connect() != 0 ) { echo "ok"; }

Tusind tak for hjælpen... lidt god karma givet videre :)
Avatar billede htm Nybegynder
28. februar 2004 - 16:10 #9
Det er nok bedre at tjekke på false.

smid evt. også et link ind i din klasse.

var $link; i toppen og lav din connect om til:

function connect()
{
    $this->link = @mysql_connect($this->host,$this->username,$this->password);
}

så kan du så tjekke den med:

if ( $con->link !== false )    echo "ok";
Avatar billede dank Nybegynder
28. februar 2004 - 17:32 #10
ja tak.. det kan jeg godt se... har netop "møbleret" det hele om efter ovenstående princip.

Takker endnu engang. :o)
Avatar billede dank Nybegynder
28. februar 2004 - 21:27 #11
og fik iøvrigt alting til at virke :))))
Avatar billede htm Nybegynder
28. februar 2004 - 21:28 #12
Dejligt at høre :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester