如何初始化PHP GET变量以避免PHP未定义的索引通知

时间:2013-11-21 23:16:04

标签: php mysql

我有以下代码将PHP GET值绑定到MYSQL查询:

$STH->bindValue(':category', $_GET['category']);

现在我在error_log中收到了PHP通知:

PHP Notice:  Undefined index: category

我不能只声明$ _GET ['category'],否则我会删除它的值。

由于

3 个答案:

答案 0 :(得分:6)

只需将该行代码包装在if语句中以检查它是否已设置:

if(isset($_GET['category'])) { 
    $STH->bindValue(':category', $_GET['category']);
}

答案 1 :(得分:1)

验证数组中是否存在密钥,或者从获取超级全局 中抑制错误

if (!empty($_GET['category']))
    $STH->bindValue(':category', $_GET['category']);
else
    $STH->bindValue(':category','');

OR

$STH->bindValue(':category', @$_GET['category']);

您通常不希望@整行,或者您可能会错过重要的错误。

答案 2 :(得分:1)

您可以使用三元运算符,但您需要定义默认值

$STH->bindValue(':category', isset($_GET['category']) ? $_GET['category'] : '');

的缩写
if (isSet($_GET['category']))
    $STH->bindValue(':category', $_GET['category']);
else
    $STH->bindValue(':category', '');