PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   [PDO] Cannot execute queries while other unbuffered queries are active. (https://www.php-resource.de/forum/php-developer-forum/90997-pdo-cannot-execute-queries-while-other-unbuffered-queries-are-active.html)

micronax 24-03-2008 00:16

[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:

Zitat:

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.

micronax 24-03-2008 00:50

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...


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:26 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG