2013-07-24 5 views
0

В настоящее время я работаю над тестовой платформой AJAX. Я испытываю глупые ошибки в программировании PHP. Вот мой код. Я получаю сообщение об ошибке: Максимальное время выполнения 30 секунд превышено.Ошибка превышения времени 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.S. В настоящее время я тестирую свой PHP-скрипт непосредственно в браузере с помощью main.php? Command = loadPeople как URL.

+1

@Ameer - рекомендуя более длительный тайм-аут не разрешить начальную проблему, просто продлить бесконечный цикл до того, как веб-сервер закончит это время –

ответ

2

Выполнение запроса, затем Проведите проверку; не пытайтесь повторно выполнить запрос в каждой итерации времени

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

Как вы ясно только изучить основы, я предлагаю, чтобы вы научились использовать MySQLi или PDO вместо устаревшего MySQL библиотека ... возможность использования подготовленных операторов и переменных привязки не влияет на этот запрос, но знание того, как их использовать, станет более важным позже.

+0

Я не новичок в PHP, но несколько лет я переориентировался на программирование окон, поэтому я некоторое время не открывал Dreamwaver. Я просто пытаюсь запомнить некоторые вещи, как вы видите :) – Victor

1

Я не написал ни одного кода PHP за какое-то время, так что это но в этой части кода:

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

Вы эссен ственно имеет бесконечную петлю, потому что $row будет назначен каждый раз mysql_fetch_assoc(mysql_query($sqlCommandString)) возвращает результат

вам нужно сохранить mysql_query($sqlCommandString) в переменный, а затем mysql_fetch_assoc из этих переменных в цикле

Смежные вопросы