PHP数组\u将相同的值放入数组?

PHP数组\u将相同的值放入数组?,php,mysql,arrays,mysqli,array-push,Php,Mysql,Arrays,Mysqli,Array Push,我正在尝试为MySQLi创建自己的“数据库”类,它是与数据库进行通信的经典类,因此我可以在我的web应用程序中执行(例如) 因此我编写了函数(这是查询中没有参数的部分) 公共函数选择($link、$query、$types、$arrayValue) { $set=array();//这是函数将返回的内容 美元对账单; 如果($types==null&&$arrayValues==null) { $statement=$link->prepare($query); 如果($statement->e

我正在尝试为MySQLi创建自己的“数据库”类,它是与数据库进行通信的经典类,因此我可以在我的web应用程序中执行(例如)

因此我编写了函数(这是查询中没有参数的部分)

公共函数选择($link、$query、$types、$arrayValue)
{
$set=array();//这是函数将返回的内容
美元对账单;
如果($types==null&&$arrayValues==null)
{
$statement=$link->prepare($query);
如果($statement->execute())
{
$statement->store_result();
$meta=$statement->result_metadata();
$fileds=array();
$results=array();
//将call\u user\u func\u数组的确切变量数放入数组中
而($field=$meta->fetch_field())
{
$var=$field->name;
$$var=null;
$fields[$var]=&$$var;
}
$fieldCount=$statement->field\u count;
调用_user_func_数组(数组($statement,'bind_result'),$fields);
while($statement->fetch())
{
$set[]=$fields;
}
回声';
打印(套);
回声';
}
}
其他的
{
函数的一部分,其中查询中有参数
}
返回$set;
}

现在的问题是$set(必须返回)是一个数组,但数组的所有值都是相同的:我用查询提取的最后一条记录。为什么?我快发疯了。

是否
$statement->fetch()
甚至可以提取多行?
$set[]=$value-什么是
$value
。。。?在显示的代码中没有出现。@rndus2r是的,查询返回了两行。为了更好,可以使用get_result()或-better-使用PDO而不是mysqli。
$statement->fetch()
甚至可以获取多行吗?
$set[]=$value-什么是
$value
。。。?在显示的代码中没有出现。@rndus2r是的,查询返回了两行。为了更好地使用get_result()或-better-使用PDO而不是mysqli。
$user = $database->select($connection, "SELECT * FROM user");
public function select($link, $query, $types, $arrayValues)
{
    $set = array(); //this is what the function will return
    $statement;

    if($types == null && $arrayValues == null)
    {
        $statement = $link->prepare($query);
        if($statement->execute())
        {
            $statement->store_result();
            $meta = $statement->result_metadata();
            $fileds = array();
            $results = array();

            //put into the array the exact number of variables for call_user_func_array
            while($field = $meta->fetch_field())
            {
                $var = $field->name;
                $$var = null;
                $fields[$var] = &$$var;
            }
            $fieldCount = $statement->field_count;
            call_user_func_array(array($statement,'bind_result'),$fields);

            while($statement->fetch())
            {
                $set[] = $fields;
            }
            echo '<pre>';
            print_r($set);
            echo '</pre>';
        }
    }
    else
    {
         part of the function where there are parameters in the query
    }

    return $set;
}