PDO Can't use method return value in write contex

  • Beste


    zou iemand mij kunnen helpen?
    Ik ben bezig met PDO te leren maar het volgende script werkt niet:

    PHP
    if(isset($db->exec("SELECT * FROM users WHERE login='".$login."'")))
    $msg .= "<br> - Deze login is al bezet!";


    en nu de functie uit de db class

    PHP
    public function exec($query)
    {
    return $this->db->exec($query) or die($this->db->errorInfo());
    }


    Wie kan mij helpen?
    Bedankt :D


    Gevonden:

    PHP
    if($db->exec("SELECT * FROM users WHERE login='".$login."'") == 0)


    Maar nu returned de exec functie "array"
    en dat ligt aan de

    PHP
    or die($this->db->errorInfo());


    Wie kan mij deze keer helpen?

  • De fout zit erin dat je een variable gebruikt in je sql,
    hier moet je een statement gebruiken :login
    en vervolgens de :login define als $login,


    PHP
    $stmtusers = $speldb->prepare("SELECT * FROM `users` WHERE `login`=:login");
    $stmtusers->bindParam(':login', $login, PDO::PARAM_STR);
    $stmtusers->execute();


    Succes ermee!

    Met vriendelijke groet,
    Mathijs Lormans


    Designer / Sustainability expert: Lormans Design
    Design, Engineering and Development
    Bouwkundig ontwerp, tekenwerk, advies en projectmanagement!
    3D modeling en 3D printing

  • Je weet hoe deze regel code evalueert?


    PHP
    return $this->db->exec($query) or die($this->db->errorInfo());


    Als de methode exec nu false return't (of iets wat daar naar evalueert), zal de die functie worden aangeroepen. Deze functie kan dus nooit een waarde returnen die naar false evalueert..

  • Oke nu ben ik bezig met de prepare functie, maar ik krijg nog altijd geen resultaat...
    Ditmaal krijg ik geen errormeldinge, maar er gebeurd ook niks :s
    dit is de query functie in de db class

    PHP
    public function query($query, $var)
    {
      $qry = $this->db->prepare($query);
      if(!$qry)
        $this->db->errorCode();
      $qry->execute($var);
    }


    en dit is het aanroepen van de functie:

    PHP
    $db->query("INSERT INTO users (login, email, passwoord) VALUES (?, ?, ?)", array($login, $mail, $pass));


    waarom gebeurd er niks?

  • sorry, had ik niet gezien... ik heb er nu echo voor gezet maar er wordt nog niets getoond :s


    Probleem opgelost:
    Ik veranderde mijn query code in het volgende:

    PHP
    $qry = $this->db->prepare($query);
    $qry->execute($var);
    if(!$qry)
       Misc::error(print_r($qry->errorInfo)));


    En toen gaf hij deze error
    "Array ( [0] => HY000 [1] => 2014 [2] => Cannot execute queries while other unbuffered queries are active."


    Toen bedacht ik dat ik nog ergens een niet uitgevoerde query had, en deze veroorzaakte dus de fout :)
    bedankt voor de hulp

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!