我在使用PHP + Datatables从SQL Server返回大量行时遇到了一些问题。我的代码使用了一个主循环,然后是一些" subloops"。
有时,当行数达到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
}
有没有人有任何建议要解决它?
由于
答案 0 :(得分:0)
请检查代码,内部循环中没有分配$ return2。可能是你想做的事
$ sql2 =" SELECT ...." $ return2 = pdomssql($ sql2);