2013-07-09 49 views
0

我有下面的PHP代码:try和catch错误/ 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']; 

在如果statment(if(!$article_ID))应该尝试在get方法的价值,如果它不能因此它的条件会抛出异常并传递给catch部分,它工作的很好,但是我在网页上看到错误信息的任何时候它都会捕获(Notice: Undefined index: articleID on line 6)为什么?我怎样才能隐藏这条消息?

+1

这个问题,很多时候问,使用'isset($ _ GET [ “条款ArticleID”])' – 2013-07-09 13:39:56

+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"] : '';