相关疑难解决方法(0)

PDO无缓冲查询

我正在尝试进入PDO细节.所以我编码了这个:

$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);
Run Code Online (Sandbox Code Playgroud)

我的getValue函数工作正常,我得到了表的下一个序列.但是当我进入execWithParameters时,我得到了这个异常:

PDOException:SQLSTATE [HY000]:常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询.考虑使用PDOStatement :: fetchAll().或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲.在第77行的D:\ Servidor\xampp_1_7_1\htdocs\bitacora\func_db.php中

我试图修改连接属性,但它不起作用.

这些是我的核心数据库功能:

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, …
Run Code Online (Sandbox Code Playgroud)

php pdo

14
推荐指数
4
解决办法
3万
查看次数

标签 统计

pdo ×1

php ×1