AOP Non-requêtes

Que j'essaie de faire en AOP de détails. Donc j'ai codé ceci:

$cn = getConnection();

//get table sequence
$comando = "call p_generate_seq('bitacora')";
$id = getValue($cn, $comando);

//$comando = 'INSERT INTO dsa_bitacora (id, estado, fch_creacion) VALUES (?, ?, ?)';
$comando = 'INSERT INTO dsa_bitacora (id, estado, fch_creacion) VALUES (:id, :estado, :fch_creacion)';
$parametros = array (
    ':id'=> (int)$id,
    ':estado'=>1,
    ':fch_creacion'=>date('Y-m-d H:i:s')
);
execWithParameters($cn, $comando, $parametros);

mon getValue fonction fonctionne très bien, et j'obtiens la séquence suivante de la table. Mais quand je suis dans l'execWithParameters, j'ai cette exception:

PDOException: SQLSTATE[HY000]: General error: 2014 Ne peut pas exécuter des requêtes, tandis que d'autres barrettes de mémoire les requêtes sont actifs. Envisager l'utilisation de la méthode PDOStatement::fetchAll(). Alternativement, si votre code n'est jamais aller à l'encontre de mysql, vous pouvez permettre à une requête de mise en mémoire tampon par le réglage de la PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribut. dans D:\Servidor\xampp_1_7_1\htdocs\bitacora\func_db.php sur la ligne 77

J'ai essayé de modifier les attributs de connexion mais ça ne fonctionne pas.

Ce sont mes core db fonctions:

function getConnection() {
    try {
        $cn = new PDO("mysql:host=$host;dbname=$bd", $usuario, $clave, array(
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            ));

        $cn->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
        return $cn;
    } catch (PDOException $e) {
        print "Error!: " . $e->getMessage() . "<br/>";
        die();
    }
}
function getValue($cn, $comando) {
    $resul = $cn->query($comando);
        if (!$resul) return null;
        while($res = $resul->fetch()) {
            $retorno = $res[0][0];
            break;
        }
        return $retorno;
}
function execWithParameters($cn, $comando, $parametros) {
    $q = $cn->prepare($comando);
    $q->execute($parametros);
    if ($q->errorInfo() != null) {
        $e = $q->errorInfo();
        echo $e[0].':'.$e[1].':'.$e[2];
    }
}

Quelqu'un qui peut apporter un éclairage pour cela? PD. S'il vous plaît ne vous le conseille pas autonumeric id, parce que je suis portage à partir d'un autre système.

Quelle est la définition de p_generate_seq? MONTRER PROCÉDURE p_generate_seq
le problème ne réside pas là, la même erreur se produit avec SELECT MAX(id) from dsa_bitacora

OriginalL'auteur Jhonny D. Cano -Leftware- | 2009-05-08