我有下面的代碼結合PHP GET值MySQL查詢:如何初始化PHP變量GET避免PHP未定義指數的通知
$STH->bindValue(':category', $_GET['category']);
現在,我收到我的error_log一個PHP的通知:
PHP Notice: Undefined index: category
我不能只聲明$ _GET ['category'],否則我會刪除它的值。
感謝
我有下面的代碼結合PHP GET值MySQL查詢:如何初始化PHP變量GET避免PHP未定義指數的通知
$STH->bindValue(':category', $_GET['category']);
現在,我收到我的error_log一個PHP的通知:
PHP Notice: Undefined index: category
我不能只聲明$ _GET ['category'],否則我會刪除它的值。
感謝
只是包裝該行代碼在if檢查語句,如果它被設置:
if(isset($_GET['category'])) {
$STH->bindValue(':category', $_GET['category']);
}
驗證數組中的鍵不存在,或者從剿錯誤的獲得超全局
if (!empty($_GET['category']))
$STH->bindValue(':category', $_GET['category']);
else
$STH->bindValue(':category','');
OR
$STH->bindValue(':category', @$_GET['category']);
您通常不希望@整個行,或者您可能會錯過重要的錯誤。
我不會downvote,因爲答案的第一部分是可以接受的,但請不要提倡使用'@'。你應該嘗試處理錯誤,而不是壓制它。 – Tomdarkness
您可以使用三元運算這一點,但你需要定義一個默認值
$STH->bindValue(':category', isset($_GET['category']) ? $_GET['category'] : '');
這是短期的
if (isSet($_GET['category']))
$STH->bindValue(':category', $_GET['category']);
else
$STH->bindValue(':category', '');
你會不會得到一個錯誤,如果你不」 t綁定':category'(在沒有設置類別的情況下)? – kero
我使用mysql查詢本身的檢查條件,以便如果類別未設置,請不要在查詢中包括它...所以不會出現錯誤 –
好點 - 需要有一個安全的默認設置 - 希望其餘的代碼處理這個給定它已經將被定義爲... – steve