MSSQL:加载 1000 + 行后的 SQLSTATE[] (空) (严重性 0)


MSSQL: SQLSTATE[] (null) (severity 0) after loading 1000 + lines

在使用 PHP + Datatables 从 SQL Server 返回大量行时,我遇到了一些问题。我的代码使用一个主循环,然后使用一些"子循环"。

有时,当行数达到 1000+ 时,执行将中止,并显示错误 MSSQL:SQLSTATE[] (null) (严重性 0)。

连接功能:

function pdo_mssql($sql){
    $host = ***;
    $user = ***;
    $pass = ***;
    $db   = ***;
    try {
        $PDO = new PDO( 'dblib:host=' . $host . ';dbname=' . $db, $user, $pass );;
    }
    catch ( PDOException $e ) {
        echo 'MSSQL error: ' . $e->getMessage(); exit;
    }
    $result = $PDO->query( $sql );
    if (is_array($result)){
        $row = $result->fetchAll( PDO::FETCH_ASSOC );
    }else{
        $row = $result;
    }
    return $row;
}

发生错误的脚本示例:

$sql = "SELECT ....";
$return = pdo_mssql($sql);
foreach ($return as $row){
    $sql2 = "SELECT ...."
    $return2 = pdomssql($sql2);
    foreach ($return2 as $row2){
        // Do something
    }
    $sql2 = "SELECT ...."
    $return2 = pdomssql($sql2);
    foreach ($return2 as $row2){
        // Do something
    }
    $sql2 = "SELECT ...."
    $return2 = pdomssql($sql2);
    foreach ($return2 as $row2){
        // Do something
    }
    // Show results
}

有人有任何建议来修复它吗?

谢谢

请检查代码,$return 2 未在内部循环中分配。可能是你想做的

$sql 2 = "选择 ...."$return 2 = pdomssql($sql 2);