0

我对 php 有点陌生,所以仍在学习 in's 和 out's。我实际上在做什么的细节大多是无关紧要的。

下面的代码旨在连接到数据库,执行查询,然后返回一个填充了相应行的数组。目前该数组在搜索器函数中打印时有数据,而当我稍后检查它时它是空的。

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

数组 ( [0] => 数组 ( ) )

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

4

2 回答 2

2

您的$profile变量拼写错误。大概就是这个原因吧。

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

于 2013-04-17T21:08:29.203 回答
0

事实上,您的搜索器函数中有 2 个不同的数组 - $profile$profile。在函数中,你用值填充$profile并输出它。这就是为什么你在第一种情况下得到输出。但是,您的函数返回空数组$profile,您在主程序中输出。这就是为什么你在第二种情况下得到空数组的原因。

于 2013-04-17T21:14:38.090 回答