2013-04-17 72 views
0

我在PHP有點新,所以仍然學習進出。我實際做的細節大多是無關緊要的。陣列不正確地返回空

下面的代碼旨在連接到數據庫,執行查詢,然後返回填充相應行的數組。目前,數組在搜索器功能中打印時有數據,稍後檢查時數組爲空。

function searcher ($connector, $select, $from, $where) 
{ 
    $profile = array(); 

    $query = $connector->prepare('SELECT ' . $select . ' FROM ' . $from . ' WHERE ' . $where); 
    $query->execute(); 

    while ($row = $query->fetch(PDO::FETCH_ASSOC)) 
    { 
     $profle[] = $row; 
    } 

    print_r($profle); 
    return $profile; 
} 

$connector = db_connection ('localhost', 'sakila', 'root', 'admin'); 

$search[] = searcher($connector, '*', 'actor', 'actor_id = 1 OR actor_id = 2'); 
echo "<br><br>"; 
print_r($search); 

的輸出如下:

陣列([0] =>數組([actor_id] => 1 [如first_name] => PENELOPE [姓氏] =>吉尼斯[LAST_UPDATE] => 2006-02-15 04:34:33)[1] => Array([actor_id] => 2 [first_name] => NICK [last_name] => WAHLBERG [last_update] => 2006-02-15 04:34:33))

Array([0] => Array())

任何想法我做錯了什麼?我相當確定它很簡單,因爲沒有任何複雜的事情正在發生。

回答

2

您的$profile變量拼寫錯誤。可能這就是原因。

雖然代碼是完全合法的,但這是您沒有從解析器中收到任何警告或通知的原因。

+1

現在我覺得自己像個白癡。/facedesk – Jack

+0

@Jack適合所有人:) – silkfire

+0

如果您對答案滿意,請點擊綠色勾號標記爲已接受 – silkfire

0

事實上,你在你的搜索功能2個不同的陣列 - $簡介$設定檔。在函數中,您可以填入$ profle並輸出值。這就是爲什麼你在第一種情況下得到輸出。 但是,您的函數返回空主機程序中輸出的空數組$ profile。這就是爲什麼你在第二種情況下得到空陣列的原因。