[PDO] Cannot execute queries while other unbuffered queries are active.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PDO] Cannot execute queries while other unbuffered queries are active.

    Hey ho,
    in meiner Account-Klasse verwende ich PDO um eine Verbindung zur lokalen MySQL-Datenbank herzustellen.. Das Problem ist:
    Bei jedem erneuten Aufruf der query(), siehe unten, wird folgender Fehler ausgegeben:

    Array ( [0] => HY000 [1] => 2014 [2] => Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute. ) 1
    PHP-Code:
    protected function query($query) {
            try {
                if (
    preg_match("@^select@is"$query)) {
                    
    $sth $this->link->prepare($query) or die(print_r($this->link->errorInfo()));
                    
    $sth->execute();
                    return 
    $sth;
                } else {
                    
    $this->link->query($query);
                    return 
    true;
                }
            } catch (
    Exception $e) {
                
    $dbh->rollBack();
                echo 
    "DATABASE OPERATION FAILED: " $e->getMessage();
                exit;
            }
        } 
    Nach der Doku soll man PDO::MYSQL_ATTR_USE_BUFFERED_QUERY auf true setzen. Das habe ich in meiner Verbindung so gelöst:

    PHP-Code:
    private function connect() {
                
    $this->link = new PDO('mysql:host=localhost;dbname=micronax_mymicronax'"mymicronax""l{7kD01eG-B[");
                
    $this->link->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERYtrue);
            return 
    true;
        } 
    Problem: Es funktioniert nicht^^

    $link ist übringens wie folgt definiert:
    PHP-Code:
    protected $link false
    Was kann ich da tun?

    Grüße,

    Fabian.

  • #2
    UPDATE: Wenn ich in der function query() zuerst connect() aufrufe.. -> keine Probleme.. aber es ist ja nicht sinn der sache für jedes query neu zu verbinden...

    Kommentar

    Lädt...
    X