2013-06-19 3 views
0

Я продолжаю получать PHP Неустранимая ошибка: Максимальное время выполнения 30 секунд превышено на строке здесь, которая проверяет, существует ли запись mySQL. Даже когда я установил большое время выполнения, у этой ошибки будет эта ошибка!Проверьте, существует ли запись с mySQL/PHP без получения таймаута?

function checkReleasePosted($releaseID){ 
    $result = mysql_query("SELECT * FROM `releases` WHERE `releaseID` = '$releaseID' LIMIT 1"); 
    if(mysql_fetch_array($result) !== false){ 
     return 'Assigned'; 
    } else { 
     return 'Available'; 
    } 
}; 

Кто-нибудь знает по-другому, я могу проверить запись, чтобы избежать этой ошибки? (Я просто изучаю старый API и вскоре его перейду в mysqli!). Любая помощь будет очень признательна, поскольку я пытался заставить ее работать в течение 2 дней. Большое спасибо

+1

PHP функции, которые начинаются с 'mysql_' были устаревшим PHP 5.5.0. Если вы в состоянии сделать это, попробуйте обновить свой код, чтобы использовать [MySQLi] (http://www.php.net/manual/en/book.mysqli.php) или [PDO] (http://www.php.net/manual/en/ref.pdo-mysql.php). –

+0

спасибо, да скоро сделаю – Joe

+0

Являются ли ваши данные 'release' слишком большими? Причина в том, что это простой запрос SELECT, не нужно так долго. – DontVoteMeDown

ответ

2

Возможно, вы сравниваете числовой столбец (releaseID) со строковым значением ('$releaseID'). Это убивает индекс. Удалите эти кавычки, если $releaseID фактически является числом, а не строкой.

+0

спасибо! да, это был номер, но я просто сделал это, и я до сих пор получаю ошибку, к сожалению, есть ли что-нибудь еще? – Joe

0

Это позволит сделать его более легким

function checkReleasePosted($releaseID){ 
$result = mysql_query("SELECT * FROM `releases` WHERE `releaseID` = $releaseID LIMIT 1"); 
$num_rows = mysql_num_rows($result); 
if($num_rows>0){ 
    return 'Assigned'; 
} else { 
    return 'Available'; 
} 
}; 
Смежные вопросы