δεν λειτουργεί database connector

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
bonito
Δημοσιεύσεις: 2
Εγγραφή: 17 Ιούλ 2010 12:30

δεν λειτουργεί database connector

Δημοσίευση από bonito » 17 Ιούλ 2010 18:29

Έχουμε και λέμε, το παρακάτω γίνεται include σε όλα τα αρχεία μια διαδικτυακής εφαρμογής.

Κώδικας: Επιλογή όλων

<?php

    function __autoload&#40;$class_name&#41;&#123;
        $class_file = "classes/$class_name.php";

        if &#40;&#40;include_once $class_file&#41;==false&#41;
        &#123;
            die&#40;"file $class_file could not be loaded for the $class_name."&#41;;
        &#125;
    &#125;

    session_start&#40;&#41;;
    $dbc = new mySQL&#40;'localhost', 'root', 'xxxxxx','v1'&#41;;
    $err = new error&#40;$dbc&#41;;
    $user = new User&#40;&#41;;
?>
Ας πούμε λοιπόν ότι σε αυτή την διαδικτυακή εφαρμογή θέλω να διαβάσω μία post μεταβλητή

Κώδικας: Επιλογή όλων

$password = UI&#58;&#58;readPostVarNonEmpty&#40;'password', true, $err, true&#41;;
Παρακάτω είναι ο κώδικας της συνάρτησης readPostVarNonEmpty();

Κώδικας: Επιλογή όλων

static public function readPostVarNonEmpty&#40;$variable, $make_query_safe=true, $errorLog=null, $die_on_error=true&#41;&#123;
       
        if &#40;!isset&#40;$_POST&#91;$variable&#93;&#41; || &#40;$_POST&#91;$variable&#93;==''&#41;&#41;
        &#123;
            $error = "The value of the POST '$variable' is not set.";
           
            if &#40;isset&#40;$errorLog&#41; && is_a&#40;$errorLog, 'error'&#41;&#41;
            &#123;
                $error_text = 'Error page&#58; '.$_SERVER&#91;'REQUEST_URI'&#93;;
                $errorLog->addError&#40;$error, $error_text&#41;;
            &#125;
           
            if &#40;$die_on_error&#41;
                die&#40;$error&#41;;
            else
            &#123;
                echo $error;
                return null;
            &#125;
        &#125;

        $var = strip_tags&#40;$_POST&#91;$variable&#93;&#41;;

        if &#40;$make_query_safe == true&#41;
            $var = mysql_real_escape_string&#40;$var&#41;;

        return $var;
    &#125;
Επειδή η μεταβλητή δεν υπάρχει σύμφωνα με τον παραπάνω κώδικα θα τρέξει η συνάρτηση addError() στην οποία υπάρχουν τα παρακάτω:

Κώδικας: Επιλογή όλων

public function addError&#40;$err_type, $err_text&#41;
&#123;
    $err_type = mysql_real_escape_string&#40;$err_type&#41;;
    $err_text = mysql_real_escape_string&#40;$err_text&#41;;
           
    $query = "INSERT INTO errorlog VALUES &#40;now&#40;&#41;,$err_type,$err_text&#41;";
    $this->dbc->ExecuteQuery&#40;$query&#41;;
&#125;
Το πρόβλημα μου λοιπόν είναι ότι η συνάρτηση ExecuteQuery($query) δεν εκτελείται! Το καταλαβαίνω από το echo που έχω βάλει. Γενικότερα είχα βάλει και άλλα echo αλλά μόνο αυτό δεν εμφανιζόταν.

Κώδικας: Επιλογή όλων

    public function ExecuteQuery&#40;$query&#41;
    &#123;
        echo 'Eftases edw;';
        if &#40;$this->debug&#41;
        &#123;
        echo "<hr width=\"100%\" /><strong>DEBUG&#58;&#91;".__METHOD__."&#93;</strong><br /><strong>Query&#58;</strong> ".$query."<br /><hr width=\"100%\" />\n";
        &#125;

        $result = mysql_query&#40;$query, $this->dbLink&#41;;

        if &#40;&#40;$err_type = mysql_errno&#40;$this->dbLink&#41;&#41;!=0&#41;
        &#123;
            $err_text = mysql_error&#40;$this->dbLink&#41;;
            $error_message_title = 'MySQL Error&#58; '.$err_type;
            $error_message_body = 'MySQL Query&#58; '.$query.".\nDescription&#58; '".$err_text."'";

            if &#40;isset&#40;$this->ErrorLog&#41;&#41;               
                $this->ErrorLog->addError&#40;$error_message_title, $error_message_body&#41;;              
            else
                $this->displayError&#40;$error_message_title."\n".$error_message_body&#41;;
               
            die&#40;&#41;;
        &#125;

        return $result;
    &#125;
Σημείωση ότι το $dbc στην συνάρτηση έχει δηλωθεί κατά την κατασκευή της κλάσης $err.

Κώδικας: Επιλογή όλων

        public function __contruct&#40;mySQL $dbc&#41;
        &#123;            
            $this->dbc = $dbc;
        &#125;
tabula rasa

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

δεν λειτουργεί database connector

Δημοσίευση από mrpc » 18 Ιούλ 2010 18:07

Δηλαδή το echo 'Eftases edw;' τρέχει κανονικά;
και μετά δεν σου πετάει κάποιο sql error;

ΣΣ: Διόρθωσα το post σου και έβαλα τον κώδικά σου σε [ code ] tags για να είναι πιο ευανάγνωστο. Please να το χρησιμοποιείς.

bonito
Δημοσιεύσεις: 2
Εγγραφή: 17 Ιούλ 2010 12:30

δεν λειτουργεί database connector

Δημοσίευση από bonito » 18 Ιούλ 2010 20:16

xaxa δεν το γνώριζα αυτό με τα tags όντως πολύ πιο ευανάγνωστο. Όχι δεν φτάνει μέχρι εκεί. Περίμενα αυτό να εκτυπωθεί. Αλλά δεν εκτυπώνετε. Τελικά το error διορθώθηκε. Ειλικρινά δεν έχω ιδέα όμως πως. Απλά έσβησα ένα μεγάλο μέρος του κώδικα και το ξαναέγραψα.
tabula rasa

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

δεν λειτουργεί database connector

Δημοσίευση από mrpc » 18 Ιούλ 2010 20:22

Τέλος καλό, όλα καλά!
Για να μην κάνουμε όμως debug στον υπάρχον κώδικα, αν καταλάβεις τι έκανες σωστά με τις διορθώσεις, πες και σε εμάς :D

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης