我正在从Microsoft SQL Server数据库中读取数据,而且我有一行字面上打破了周期",这意味着我必须处理类似160.000行的内容,但是一旦遇到这个特定的行,脚本就会停止执行并退出,就像它已经完成处理行一样:没有抛出异常,没有错误,也没有来自php的警告,也没有来自我的mq db插入行..没有,它只是停止执行并打印一个自定义消息,告诉我它已经消耗了所有行,但这不是真的,因为它只处理50.000个条目。
我检查过这行,并没有奇怪的字符......
这是代码的一部分:
$tsql= "SELECT * FROM ordini_all ORDER BY id ASC";
$getResults= sqlsrv_query($msconn, $tsql, array(), array( "Scrollable" => 'static' ));
if ($getResults === FALSE){ die(FormatErrors(sqlsrv_errors()));}
else{echo "ok query - Righe " . sqlsrv_num_rows($getResults) . "\n\n\n";}
// Create connection - to local mysql db
$mysql_conn = new mysqli($servername, $username, $password, $dbname);
if ($mysql_conn->connect_error) { die("Connection failed: " . $mysql_conn->connect_error);}
$inizio = date("h:i:sa");
$counter = 0;
$err_counter = 0;
$tot_orders = sqlsrv_num_rows($getResults);
echo "\n Rows " . $tot_orders; //this is the correct number
while($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) {
... do your things to insert rows in another db
}
echo "\nInizio " . $inizio . " Fine " . date("h:i:sa") . " tot errori " . $err_counter . " su inserite " . $counter . " il totale era " . $tot_orders . "\n";
出于隐私原因,无法添加错误条目,但它与所有其他159.999条目没有什么不同。
关于什么可以阻止执行while循环的任何线索?