2013-07-09 3 views
0

У меня есть следующий PHP код:попытаться поймать ошибка/PHP

try{ 
    $article_ID =$_GET["articleID"]; 
    if(!$article_ID) { 
     throw new Exception("Invalid query: ". mysql_error()); 
    } 
    else { 
     $select_query = mysql_query("SELECT articleContent, articleTitle From articles WHERE articleID=$article_ID AND typeID=$type_ID"); 
    } 
} 
catch(Exception $e) { 
    //echo $e->getMessage(); 
    $select_query = mysql_query("SELECT articleContent, articleTitle From articles  WHERE typeID=$type_ID"); 
} 
$row = mysql_fetch_assoc($select_query); 
echo '<h1>'.$row['articleTitle'].'</h1>'; 
echo $row['articleContent']; 

условие в, если даного (if(!$article_ID)) должен попытаться получить значение в методе GET, и если он не может так будет генерировать исключение и перейти к разделу catch, он отлично работает, но я вижу сообщение об ошибке на моей веб-странице в любое время, когда речь заходит о улове (Notice: Undefined index: articleID on line 6). Почему? и как я могу скрыть это сообщение?

+1

этот вопрос много раз просили, используйте 'Исеть ($ _ GET [ "ArticleID"])' –

+3

[** Пожалуйста, не используйте 'mysql_ * 'функции в новом коде **] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [вот хороший учебник] (http://j.mp/PoWehJ) – Fracsi

ответ

1

Уведомления не вызывают исключений. Уведомление находится в первой строке, потому что в переменной массива $ _GET нет ключа «ArticleID».

Я думаю, что вы могли бы сделать что-то вроде этого

$articleID = isset($_GET["articleID"]) ? $_GET["articleID"] : ''; 
Смежные вопросы