在使用 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);