В python 3.5+ есть более простой способ получить мелкую копию с помощью оператора ** распаковки. Определено Pep 448 .
>>>dict1 = {"key1": "value1", "key2": "value2"}
>>>dict2 = {**dict1}
>>>print(dict2)
{'key1': 'value1', 'key2': 'value2'}
>>>dict2["key2"] = "WHY?!"
>>>print(dict1)
{'key1': 'value1', 'key2': 'value2'}
>>>print(dict2)
{'key1': 'value1', 'key2': 'WHY?!'}
** распаковывает словарь в новый словарь, который затем присваивается dict2.
Мы также можем подтвердить, что каждый словарь имеет отдельный идентификатор.
>>>id(dict1)
178192816
>>>id(dict2)
178192600
Если требуется глубокая копия, то copy.deepcopy () все еще остается в пути.
Вы неправильно поняли цикл for. Используется для повторения определенных действий, пока указанное условие не станет ложным. Ваше условие - это задание, поэтому есть ошибка.
Поэтому измените это
для ($ i = 0; $ row = $ result-> fetch (); $ i ++) {
blockquote>на следующее:
foreach ($result->fetch_all() as $row) {
$ result-> fetch_all () возвращает ассоциативный массив данных. С помощью цикла foreach вы получаете доступ к каждому элементу в этом массиве и можете получить к нему доступ с помощью $ row ['any-key-you-want']