我在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;数组())
知道我做错了什么吗?我很确定它很简单,因为没有那么复杂的事情发生。
答案 0 :(得分:2)
您的$profile
变量拼写错误。可能这就是原因。
代码完全合法,这就是你没有从解析器收到任何警告或通知的原因。
答案 1 :(得分:0)
事实上,您的搜索器功能中有两个不同的阵列 - $ profile 和 $ profle 。在函数中,您使用值填充 $ profle 并输出它。这就是你在第一种情况下获得输出的原因。 但是,您的函数返回空数组 $ profile ,您将在主程序中输出。这就是你在第二种情况下获得空数组的原因。