簡體   English   中英

PHP腳本錯誤注意:未定義的變量

[英]PHP script error Notice: Undefined variable

我正在編寫用於高級搜索的PHP腳本,但是發生了錯誤。 請幫忙
碼:

$key    = $_GET['key'];
$auth   = $_GET['auth'];
$lang   = $_GET['lang'];
$pub    = $_GET['pub'];

if(isset($key) OR isset($auth) OR isset($lang) OR isset($pub))
{
    if ($key    != NULL){$keyword   = "AND (native_name LIKE '%".$key."%' OR unique_name LIKE '%".$key."%')";}
    if ($auth   != 0)   {$auther    = "AND auth_id=".$auth."";}
    if ($lang   != 0)   {$language  = "AND lang_id=".$lang."";}
    if ($pub    != 0)   {$publisher = "AND pub_id=".$pub."";}

    $search_query = "SELECT native_name from books WHERE status=1 ".$keyword." ".$auther." ".$language." ".$publisher."";
    print $search_query;
}

錯誤:

注意:第90行的FILE_PATH中的undefined variable:關鍵字
注意:未定義的變量:第90行的FILE_PATH中的auther
注意:未定義的變量:第90行的FILE_PATH中的語言
注意:未定義的變量:第90行的FILE_PATH中的發布者

如果通過if語句創建變量,則可能不會創建這些變量。

您的情況有兩個不同的選擇。

1,使用三元語法

$keyword = $key != NULL ? "AND (native_name LIKE '%".$key."%' OR unique_name LIKE '%".$key."%')" : "";
$author = $auth !=0 ? "AND auth_id=".$auth : "";
$language = $lang !=0 ? "AND lang_id=".$lang : "";
$publisher = $pub !=0 ? "AND pub_id=".$pub : "";

2,預定義變量

$keyword = "";
$author = "";
$language = "";
$publisher = "";

if ($key    != NULL){$keyword   = "AND (native_name LIKE '%".$key."%' OR unique_name LIKE '%".$key."%')";}
if ($auth   != 0)   {$auther    = "AND auth_id=".$auth."";}
if ($lang   != 0)   {$language  = "AND lang_id=".$lang."";}
if ($pub    != 0)   {$publisher = "AND pub_id=".$pub."";}

$ keyword / $ auther / etc ..僅在_POST中設置了相應的值時才被分配。 如果未傳遞任何數據,則$ key / $ auth / etc ...將為空字符串或為null,等於0 / null。 嘗試:

if ($key != null) {
   $keyword = ...;
} else {
   $keyword = some default value;
}

其他的也一樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM