2013-04-17 67 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。这就是为什么你在第二种情况下得到空阵列的原因。