Никита Осенний
Новичок
Буду благодарен за ответы на возникшие вопросы:
1) код можно писать в объектно-ориентированном стиле и процедурном стиле. В первом много стрелочек. Второй (имхо) более понятен. Но первый иногда удобнее использовать (короче).
---1.1) Откуда вообще два стиля взялось?
---1.2) Какой из них предпочтительнее (если вообще этот вопрос уместен в данном случае)?
---1.3) Отличаются ли стили по скорости компиляции и выполнения кода?
---1.4) Допускается ли смешивание стилей (исходя из производительности)? Т.е. не будет ли код, написанный в одном стиле выполняться быстрее, чем код, написанный в смешанном?
2) При объявлении переменной под неё резервируется память.
---2.1) Допустим, я объявляю переменную $a=""; Она будет занимать сколько-то памяти. Сколько?
---2.2) Затем в эту переменную я заношу, например, 1мб текста. Объём памяти расширится под эти данные. А что происходит дальше, если:
------2.2.1) Я запишу в эту же переменную, например, число 0 или опять укажу $a="";. Память, которую занимал 1 мб текста, "сожмётя" или, один раз раширившись до определённого уровня, она не "ужимается"?
------2.2.2) Я удаляю эту переменную командой unset($a); Что просходит с памятью, которую занимала эта переменная?
------2.2.3) Выполнение php закончится или команда exit(); Что происходит с памятью в этом случае ($a=данные на 1мб)?
3) Базы данных mysql и расширение mysqli. Допустим, выполняем код php, где в первой строчкой установили соединение с базой данных.
---3.1) Выполняем запрос к базе данных. Лично я текст запроса заношу в отдельную переменную. Далее выполняю запрос к базе. И извлекаю данные (если это, например, запрос на выборку).
Так вот. В какой момент:
------3.1.1) уже можно закрывать соединение с базой данных? Допустим выполняется только один запрос и всё.
------3.1.2) нужно закрывать соединение с базой данных?
---3.2) Что происходит с соединение с базой данных, если его не закрыть и:
------3.2.1) php будет полностью выполнен
------3.2.2) прекратить выполнение php командой exit();
------3.2.3) в другом php файле открыть ещё одно соединение с базой данных?
---------3.2.3.1) Влияют ли как-то в данном случае на ситуацию команды require_once и require при подключении файла соединения с базой данных?
---------3.2.3.1) А если не используется единый файл подключения к базе данных, и код подключения каждый раз пишется по новой, что будет с незакрытым соединением и открытием ещё одного? И ещё?
---3.3) Что происходит с памятью под переменные, если эту память не освободили?
---3.4) При работе с базами данных есть команда mysqli_free_result(); В чём её отличие от unset();?
---3.5) Какова правильная логика написания запросов на удаление\добавление данных при обилии этих данных.
------3.5.1) Первый случай. Есть массив, содержащий ИД всех тех записей, которые нужно удалить. Как наиболее правильно и рационально удалить все эти записи?
---------3.5.1.1) Получается, что единственное, что остаётся, это удалять по одной записи, перебирая в цикле по одному ИД из массива?
------3.5.2) Второй случай. Есть таблица с уже забитыми в неё данными. Запросом нужно извлечь все эти данные и записать в другую таблицу, присвоив каждой записи исходной таблицы один ИД. Получается что нужно получить все записи из первой таблицы и перебирая по одной вставлять в новую таблицу, присваивая каждой ИД (речь идёт не об AI)?
---3.6) Мультизапросы. Часто бывают ситуации, когда нужно добавить полученные данные по частям в разные таблицы базы данных. Самое простое - это форма, где указываются ФИО, папортные данные, адреса, телефоны, какие-то предпочтения, примечания. И все эти данные после получения нужно записать в разные таблицы. Как тут лучше быть?
------3.6.1) Использовать обычные запросы на каждую таблицу?
------3.6.2) Или мультизапросы?
---------3.6.2.1) И лучше ли их использовать? В плане скорости выполнения скрипта, обработки запросов этих базой данных?
---------3.6.2.1) Если ли у кого-нибудь опыт использования этих запросов?
---3.7) Приведённый в пункте 3.6.1 код содержит команды LOCK TABLES и UNLOCK TABLES. В частности команда UNLOCK TABLES - когда её нужно использовать? В смысле, сразу после $result=$connection->query($query); или проверки успешности выполнения запроса?
4) Меня также интересуют вопросы касательно производительности и скорости выполнения php. Конкретных вопросов у меня тут нет, но хотелось бы услышать какие-то наставления по этому поводу от опытных программистов.
5) Вопрос такой же, как и №4 выше, но касательно работы с базами данных mysql. Что скажете?
6) Любые другие советы и т.п. по вопросам, которые я мог и пропустить, но которые явно важны и актуальны.
Надеюсь, что получу ответы на свои вопросы. Всем ответившим - огромное спасибо!

1) код можно писать в объектно-ориентированном стиле и процедурном стиле. В первом много стрелочек. Второй (имхо) более понятен. Но первый иногда удобнее использовать (короче).
---1.1) Откуда вообще два стиля взялось?
---1.2) Какой из них предпочтительнее (если вообще этот вопрос уместен в данном случае)?
---1.3) Отличаются ли стили по скорости компиляции и выполнения кода?
---1.4) Допускается ли смешивание стилей (исходя из производительности)? Т.е. не будет ли код, написанный в одном стиле выполняться быстрее, чем код, написанный в смешанном?
2) При объявлении переменной под неё резервируется память.
---2.1) Допустим, я объявляю переменную $a=""; Она будет занимать сколько-то памяти. Сколько?
---2.2) Затем в эту переменную я заношу, например, 1мб текста. Объём памяти расширится под эти данные. А что происходит дальше, если:
------2.2.1) Я запишу в эту же переменную, например, число 0 или опять укажу $a="";. Память, которую занимал 1 мб текста, "сожмётя" или, один раз раширившись до определённого уровня, она не "ужимается"?
------2.2.2) Я удаляю эту переменную командой unset($a); Что просходит с памятью, которую занимала эта переменная?
------2.2.3) Выполнение php закончится или команда exit(); Что происходит с памятью в этом случае ($a=данные на 1мб)?
3) Базы данных mysql и расширение mysqli. Допустим, выполняем код php, где в первой строчкой установили соединение с базой данных.
---3.1) Выполняем запрос к базе данных. Лично я текст запроса заношу в отдельную переменную. Далее выполняю запрос к базе. И извлекаю данные (если это, например, запрос на выборку).
PHP:
$query = "Текст запроса";
$result = $connection->query($query);
if (!$result) {die($connection->error); $connection->close(); exit();};
$myrow = mysqli_fetch_array($result);
------3.1.1) уже можно закрывать соединение с базой данных? Допустим выполняется только один запрос и всё.
------3.1.2) нужно закрывать соединение с базой данных?
---3.2) Что происходит с соединение с базой данных, если его не закрыть и:
------3.2.1) php будет полностью выполнен
------3.2.2) прекратить выполнение php командой exit();
------3.2.3) в другом php файле открыть ещё одно соединение с базой данных?
---------3.2.3.1) Влияют ли как-то в данном случае на ситуацию команды require_once и require при подключении файла соединения с базой данных?
---------3.2.3.1) А если не используется единый файл подключения к базе данных, и код подключения каждый раз пишется по новой, что будет с незакрытым соединением и открытием ещё одного? И ещё?
---3.3) Что происходит с памятью под переменные, если эту память не освободили?
---3.4) При работе с базами данных есть команда mysqli_free_result(); В чём её отличие от unset();?
---3.5) Какова правильная логика написания запросов на удаление\добавление данных при обилии этих данных.
------3.5.1) Первый случай. Есть массив, содержащий ИД всех тех записей, которые нужно удалить. Как наиболее правильно и рационально удалить все эти записи?
---------3.5.1.1) Получается, что единственное, что остаётся, это удалять по одной записи, перебирая в цикле по одному ИД из массива?
------3.5.2) Второй случай. Есть таблица с уже забитыми в неё данными. Запросом нужно извлечь все эти данные и записать в другую таблицу, присвоив каждой записи исходной таблицы один ИД. Получается что нужно получить все записи из первой таблицы и перебирая по одной вставлять в новую таблицу, присваивая каждой ИД (речь идёт не об AI)?
---3.6) Мультизапросы. Часто бывают ситуации, когда нужно добавить полученные данные по частям в разные таблицы базы данных. Самое простое - это форма, где указываются ФИО, папортные данные, адреса, телефоны, какие-то предпочтения, примечания. И все эти данные после получения нужно записать в разные таблицы. Как тут лучше быть?
------3.6.1) Использовать обычные запросы на каждую таблицу?
PHP:
$query="Текст запроса";
$connection->query("LOCK TABLES Имя_таблицы Write");
$result=$connection->query($query);
if (!$result) {die($connection->error); $connection->close(); exit();};
$connection->query("UNLOCK TABLES Имя_таблицы Write");
---------3.6.2.1) И лучше ли их использовать? В плане скорости выполнения скрипта, обработки запросов этих базой данных?
---------3.6.2.1) Если ли у кого-нибудь опыт использования этих запросов?
---3.7) Приведённый в пункте 3.6.1 код содержит команды LOCK TABLES и UNLOCK TABLES. В частности команда UNLOCK TABLES - когда её нужно использовать? В смысле, сразу после $result=$connection->query($query); или проверки успешности выполнения запроса?
4) Меня также интересуют вопросы касательно производительности и скорости выполнения php. Конкретных вопросов у меня тут нет, но хотелось бы услышать какие-то наставления по этому поводу от опытных программистов.
5) Вопрос такой же, как и №4 выше, но касательно работы с базами данных mysql. Что скажете?
6) Любые другие советы и т.п. по вопросам, которые я мог и пропустить, но которые явно важны и актуальны.
Надеюсь, что получу ответы на свои вопросы. Всем ответившим - огромное спасибо!

