2013-07-24 6 views
0

현재 AJAX 테스트 플랫폼에서 작업 중입니다. PHP 프로그래밍에서 어리석은 오류가 발생했습니다. 여기 내 코드가있다. 오류 : 최대 실행 시간이 3030 초를 넘었습니다..MySQL의 시간 초과 오류

<?php 
$resultFromJson; 

$databaseConnection = mysql_connect("localhost", "root", "password"); 
if($databaseConnection)mysql_select_db("fastdata", $databaseConnection); 
else echo mysql_error($databaseConnection); 

if(isset($_GET['command'])){ 
    switch($_GET['command']){ 
     case "loadPeople": 
     { 
      $sqlCommandString = "SELECT * FROM `people` LIMIT 0 , 30"; 

      $people = array(); 
      $index = 0; 
      while($row = mysql_fetch_assoc(mysql_query($sqlCommandString))){ 
       $people[$index] = $row; 
       $index++; 
      } 

      echo json_encode($people); 
     } 
     break; 
    } 
} 

if(!isset($_GET['command']))echo json_encode("Error#001"); 

?> 

이 오류를 해결하려면 어떻게해야합니까? 실제로 오류의 원인은 무엇입니까?

P. 현재 main.php? command = loadPeople을 URL로 사용하여 브라우저에서 직접 PHP 스크립트를 테스트하고 있습니다.

+1

@Ameer에서 그 변수에서 다음 변수로 mysql_query($sqlCommandString)mysql_fetch_assoc을 저장해야

결과를 할당 할 수 있기 때문에 tially 네버 앤딩 루프가 초기 문제를 해결하고 웹 서버가 시간을 초과하기 전에 무한 루프를 연장합니다. –

답변

2

결과를 통해 다음에 루프를 실행하십시오. 당신이 명확하게 단지 기초를 배우고, 나는 당신이 사용되지 않는 MySQL을보다 오히려 MySQLi 또는 PDO를 사용하는 방법을 배우게하는 것이 좋을 것

$resultset = mysql_query($sqlCommandString); 
while ($row = mysql_fetch_assoc($resultset)) { 

그동안의 모든 반복에서 쿼리를 다시 실행하려고하지 않는다 라이브러리 ... 준비된 문과 변수를 사용할 수 있다는 것은이 쿼리에 영향을 미치지 않지만 나중에 사용하는 방법을 아는 것이 더 중요해질 것입니다.

+0

저는 PHP가 처음이 아니지만 몇 년 동안 Windows 프로그래밍에 재 적응했습니다. 그래서 잠시 Dreamweaver를 열지 않았습니다. 나는 당신이 보는 것처럼 몇 가지 것을 기억하려고 노력합니다 :) – Victor

1

잠시 동안 PHP 코드를 작성하지 않았으므로 이 코드 조각에는 야생 추측이 표시됩니다.

while($row = mysql_fetch_assoc(mysql_query($sqlCommandString))) 

더 긴 시간 제한을하지 않습니다 추천 - $row이 때마다 mysql_fetch_assoc(mysql_query($sqlCommandString)) 돌아갑니다 루프