我有以下代码将PHP GET值绑定到MYSQL查询:
$STH->bindValue(':category', $_GET['category']);
现在我在error_log中收到了PHP通知:
PHP Notice: Undefined index: category
我不能只声明$ _GET ['category'],否则我会删除它的值。
由于
答案 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', '');