Vordefinierte konstanten in function benutzen

  • Hallo leute..
    Ich stehe vor dem kleinen problem das mein script (eine function)


    Die vordefinierten konstanten zu einer mysql verbindung brauchen.


    Diese sind in einer zuvor per require_once geladener datei definiert


    nun meine funktion siht volgendermasen aus:


    Code
    function ccdb_connect() {
    $ccdb = mysql_connect(DB_HOST,DB_USER,DB_PASS);
             or die('Verbindung Fehlgeschlagen'. mysql_errno());
    mysql_select_db(DB_NAME);
    }


    Nur weden die in der zuvor geladenen datei definierten konstanten nicht in der funktion verfügbar sein wie es scheint ich bekomme kein error sondern bekomme eine weiße seite sobald ich die funktion aufrufe oder die datei in der die funktion ist per require_once aufrufe..


    Hat jemand eine idee was da flasch läft ?


    MFG
    R4Zz0R[/code]

  • Hi,


    ich würde mal sagen parameter aufruf.... oder Global



    Register Globals warscheinlich aus. Sind Konstanten Globale Variablen?


    Selbst wenn, mach das ganze mit Parametern. Sonnst brauchst ja auch keine Funktion erstellen.



    Anfürsich ist diese funktion sowiso unnötig. Da du das ja auch jeder seite ausführen musst, und nur auf diese art, und die daten sind auch immer das gleiche.


    Also kannst das genauso gut direckt in ne datei schreiben und includen.


    Greetz TimTim

  • oO...


    Naj aok könnte ich.
    Aber ich includiere auf der seite immer! eine datei die auf die function zugreifen soll/muss und da ich diese funktion nicht immer brauche finde ich es einfacher das verbinden als function zus chreiben die nur dann wenn sie auch wirklich gebraucht wird eufgerufen werden kann und ansonsten einfach geladen aber ignoriert wird um keine offene verbindung zum mysql server zu hinterlassen


    ob definierte konstanten global sind... Kein ahnung ich google mal.



    MFG
    R4Zz0R

  • Ehm.. wie kommst dann drauf das sie in der Funktion da sein sollen..



    Du weist schon das in Funktionen eigene Namensräume exsetieren als auserhalb.


    Das heist, du musst die Variablen übergeben Entweder du macht sie in der Funktion Global, oder übergibst sie als parameter.



    Wober letzteres die elegantere lösung ist.



    Is ja auch kein problem..





    Zudem, erstelle keine Funktionen ohne return.


    2. Wenn du das schon in ne Funktion schreibst, dann mach es doch so, das sie bei erfolg true zurück gibt und andernfalls False.



    Dann kannst $connect_ok immer benutzen um zu prüfen ob fehler aufgetreten sind.
    (wenn mal auf das DIE verzichtet werden kann)



    Greetz TimTim

  • Ja also lösung 2 sieht mir hier die sinnvollste aus.
    Nur deine schreibweise find ich schon sehr gewöhnungsbedürftig xD
    Aber das liegt an meinem eigenen stil.


    Mal als beispiel wie ich den code schreiben würde.
    (Nur in der formatierung der code ist der gleiche)
    Gehört deine schreibweiße nicht unter punkt2 der pear standarts ?.
    http://pear.php.net/manual/de/standards.control.php
    Also ich habe mir durch angewöhnen dieser schreibweise viel zeit beim lesen erspart.


    MFG
    R4Zz0R

  • öhm.. naja ich fang hier wenn ich das aus der hand schreibe nicht mit formatierung an.. da bekommst ja n krampf vom leertaste drücken =D.



    Mir gieng es ja nur um die Funktionalität..


    Es ist eh recht schwer zu lesen wegen den fehlenden syntax-hiligtings..







    So sieht es bei mir aus.


    es ham auch die $ bei den 2 vars in den IF gefehlt =).



    Greetz TimTim

  • lol stimmt hast recht aber warumm gab mir die funktion das im test doch true zurück und ich hatte ne erfolgreiche verbindung ..
    ??


    lol hab ich das was nich gelesen was zum thema variablen waren ?..


    Local bei mir is error_reporting(E-ALL); also sollte ich das doch angezeigt bekommen... hmm


    Naja habs verbessert danke für den hinweiß und die schnelle hilfe.


    MFG
    R4Zz0R

  • Was meinst ???



    Liegt daran das Konstanten wirklich super Global sind.


    Es geht schon, aber ist halt keine so schöne lösung das einfach so aufzurufen.


    Also was gieng den bei der Funktion vorher eigentlich nicht?


    So wie grad geschrieben, hat sie ja zuvor funktioniert..

  • die $ in den if blöcken die gefehlt haben.


    die hätten mir eigentlich nen error ausgeben müssen aber die funktion hat einwandfrei funktioniert auch ohne $ schon seltsam

  • vorher hab ich einen fehler zurückbekommen das die verbindung fehlgeschlagen ist da er scheinbar nicht auf die konstanten zugreifen konnte

  • Also laut php.net nicht.


    Es gibt scheinbar eine webapplikation mit namen ccdb aber die scheint eine klasse zum handeln von datenbanken zu sein.


    Naja jedenfals es funktioniert einwandfrei xD
    THX & MFG


    R4Zz0R

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!