PHP array_push положить то же значение в массив?

Я пытаюсь создать свой собственный класс "База данных" для 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;
}

Теперь проблема в том, что $ set (который должен быть возвращен) является массивом, но все значения массива одинаковы: последняя запись, которую я извлек с помощью запроса. Зачем? я схожу с ума

0 ответов

Другие вопросы по тегам