0
首先,我想說我的英語很差,但我會嘗試。PHP腳本在服務器上很慢,但在本地速度很快
我試着在我的電腦上用wamp服務器運行一個PHP腳本,它工作正常,但是當我上傳時,出於某種原因,它花費了很多時間來完成主機上的執行,並且幾乎總是結束服務臨時不可用錯誤(主機關閉連接)。我使用了一些die()來查看問題在哪裏,我發現它是一個for循環,我在做一個大字符串(我只是連接在一起做一個大的INSERT來執行循環)。而這個循環在本地工作...我不明白爲什麼不在主機上工作。
//insertar valores en bbdd
$sql = "Insert into valor values ";
$primer = 1;
$tiempo_inicio = microtime(true);
for($i = 0 ; $i <= count($array2) - 1 ; $i++)
{
//insertar glucosa
if(!$array2[$i][1] == "")
{
if (!$primer) $sql .= ", ";
else $primer = 0;
$sql .= "('" . $this->paciente . "', '" . $array2[$i][0] . "', 'Glucosa', " . $array2[$i][1] . ")";
$this->Comprobar_Aumentar_Avisos($array2[$i][0], $array2[$i][1]);
}
//insertar raciones
if(!$array2[$i][2] == "")
{
if (!$primer) $sql .= ", ";
else $primer = 0;
$sql .= "('" . $this->paciente . "', '" . $array2[$i][0] . "', 'Raciones', " . $array2[$i][2] . ")";
}
//insertar insulina
if(!$array2[$i][3] == "")
{
if (!$primer) $sql .= ", ";
else $primer = 0;
$sql .= "('" . $this->paciente . "', '" . $array2[$i][0] . "', 'Insulina', " . $array2[$i][3] . ")";
}
}
$tiempo_total = microtime(true) - $tiempo_inicio;
die($tiempo_total);
if ($sql != "Insert into valor values ") {
$AccessBD = new TAccessBD;
$AccessBD->usuario = $this->paciente;
$AccessBD->Inicialitzar_BD();
$AccessBD->query = $sql;
$res = $AccessBD->Ejecutar_SQL();
$AccessBD->Finalitzar_BD();
unset($AccessBD);
}
你的意思是if語句是這樣的!!($ array2 [$ i] [1] ==「」)'而不是'!$ array2 [$ i] [1] ==「」' – Kevin
您可能隔離了錯誤的代碼,請參閱[PHP中的遠程調試和內存分析](http://stackoverflow.com/q/1978603)。另外,準備好的語句比手動插入值列表連接速度更快(並且更簡單)。 – mario
'$ array2'中有多少個條目? – nbrogi