数组错误地返回空

时间:2013-04-17 21:05:25

标签: php arrays return

我在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] =&gt;数组([actor_id] =&gt; 1 [first_name] =&gt; PENELOPE   [last_name] =&gt; GUINESS [last_update] =&gt; 2006-02-15 04:34:33)[1] =&gt;   数组([actor_id] =&gt; 2 [first_name] =&gt; NICK [last_name] =&gt; WAHLBERG   [last_update] =&gt; 2006-02-15 04:34:33))

     

数组([0] =&gt;数组())

知道我做错了什么吗?我很确定它很简单,因为没有那么复杂的事情发生。

2 个答案:

答案 0 :(得分:2)

您的$profile变量拼写错误。可能这就是原因。

代码完全合法,这就是你没有从解析器收到任何警告或通知的原因。

答案 1 :(得分:0)

事实上,您的搜索器功能中有两个不同的阵列 - $ profile $ profle 。在函数中,您使用值填充 $ profle 并输出它。这就是你在第一种情况下获得输出的原因。 但是,您的函数返回空数组 $ profile ,您将在主程序中输出。这就是你在第二种情况下获得空数组的原因。