簡體   English   中英

如何在PHP中檢測包含mysql_query字符串的字符串變量?

[英]How can I detect string variable contains mysql_query string in PHP?

我嘗試編寫獲取mysql_query變量的函數,然后獲取並給我一個數組。 我寫這些代碼:

$select_query = mysql_query("...");
fetch_query_objects($select_query);
function fetch_query_objects($query){
$counter = 0;
while ($fetch_query = mysql_fetch_assoc($query)) {
    $fields_name = array_keys($fetch_query);
    for ($i=0; $i < count($fields_name); $i++) { 
        $objects[$fields_name[$i]][$counter] = $fetch_query[$fields_name[$i]];
    }
    $counter++;
}
return $objects;
}

但是在此函數中,我無法識別$query是否為mysql_query字符串。 我該如何檢測?

假設您只想知道如何檢查特定變量是否為字符串,則可以使用is_string()函數。

我將函數重寫為如下所示:

$select_query = mysql_query(/* Your query */);
$store_result = fetch_query_objects($select_query);

function fetch_query_objects($query){

    $counter = 0;
    $objects = array();

    while ($fetch_query = mysql_fetch_assoc($query)) {

        $fields_name = array_keys($fetch_query);

        for ($i = 0; $i < count($fields_name); $i++) { 
            $objects[$fields_name[$i]][$counter] = $fetch_query[$fields_name[$i]];
        }

        $counter++;
    }

        return $objects;
}

/* Use $store_result here */

不幸的是,我不知道該函數的邏輯是否有效,因為我不熟悉mysql_*函數(也已棄用)。 我建議您開始研究PDOmysqli ,並盡快使用它們。

你可以這樣檢查

$rows = mysql_nrows($select_query);

   if($row!=0){// execute function 
   }else {
        //don't execute function
    }

我找到答案:

$select_query = mysql_query("...");
fetch_query_objects($select_query);

function fetch_query_objects($query){
    $objects = array();
    if (gettype($query)=="resource") {
        if ((get_resource_type ($query))=="mysql result") {
            $counter = 0;
            while ($fetch_query = mysql_fetch_assoc($query)) {
                $fields_name = array_keys($fetch_query);
                for ($i=0; $i < count($fields_name); $i++) { 
                    $objects[$fields_name[$i]][$counter] = $fetch_query[$fields_name[$i]];
                }
                $counter++;
            }
        }
    }
    return $objects;
}

暫無
暫無

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

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