首先,这是php/mysql旧组合的一个问题:
菲律宾比索5.2.0-8,
mysql版本14.12发行版5.0.32
所以我要做的是:

$con = db_connect();
$last_id = 123;
$q1 = db_select_all( $con, "t1", "WHERE id=" . $last_id );
$r1 = $q1->fetch();
$q2 = db_select_all( $con, "t2", "WHERE id=" . $last_id );
$r2 = $q2->fetch();

function db_connect()
{
    $con = new PDO();
    return $con;
}

function db_select_all( $con, $tab, $cond )
{
    $cmd = "SELECT * FROM " . $tab . " " . $cond;
    print "$cmd\n";
    $res = $con->query( $cmd );
    return $res;
}

问题是对$con->query()的第二次调用总是返回一个空对象。
更新版本的php/mysql不会出现这种情况
如果我关闭连接并重新连接,那么它将工作正常。
所以看起来这个组合不支持同时进行多个查询。这是一个已知的限制还是有办法让它发挥作用?
一如既往,欢迎任何意见。

最佳答案

您需要关闭光标,请参见文档:PDOStatement::closeCursor()

关于php - PHP的多重查询问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4746408/

10-14 00:25