2013-08-22 2 views
0

У меня есть несколько while петель в моем PHP кода, которые выглядят примерно так:While Loop - PHP

qry_myquery = "SELECT * FROM table WHERE value = '$value' "; 
$rs_myquery = mysql_query($qry_myquery) or die(mysql_error()); 
while($row = mysql_fetch_assoc($rs_myquery)){ 

    if($row[$entryType] > 0){ 
     $entryPointNumber = $row[$entryType]; 
    }else { 
     $data["FatalError2"] = "Error!"; 
     die(); 
    } 
} //END: While loop - entries from AJAX legal. 

Мой вопрос - есть ли что-то неправильно с записью в то время как петли в этом случае? Будут ли они продолжаться бесконечно и сосать память/ненужную вычислительную мощность? Должен ли я как-то закрыть их после того, как я покончу с ними?

+1

yes pal u написали нужный фрагмент кода :) – Tushar

+1

Самая большая проблема, с которой вы столкнулись, - это не цикл while; это то, что вы используете старое устаревшее расширение MySQL, а не MySQLi или PDO с подготовленными операторами –

+0

@MarkBaker благодарит за то, что указали, что нет - я буду обновлять свой код до MySQLi – user1775598

ответ

1

Есть ли что-то не так с написанием в то время как петли таким образом? не

нет

Будут ли они продолжать работать неопределенно долго и сосать память/ненужную мощность процессора?

нет, он работает до тех пор, пока условие истинно, в вашем случае, когда нет больше строк, цикл остановится

Я должен закрыть их как-то после того, как я сделать с ними? не

нет (но, возможно, я не понял, что вы просите здесь)

+0

Когда я имел ввиду близко, я думал, что мне нужно убить цикл, если он работает бесконечно. Но поскольку он остановится сам по себе после того, как он достигнет последней строки, ничего не нужно закрывать. – user1775598

-1

Цикл WHILE, кажется, хорошо, и цикл не побежит на неопределенный срок.

Но я вижу одну проблему с кодом, который является выражением die(). Вызвав die(), вы не делаете чистый выход в коде. Я имею в виду, что вы не закрываете соединение с базой данных.

+1

php закроет соединение или пул его для дальнейшего использования после завершения скрипта, нет необходимости вызывать mysql_close в php – x4rf41