Сколько переменных можно передавать в функцию

Статус
В этой теме нельзя размещать новые ответы.

askarbin

Профессор
Регистрация
31 Мар 2009
Сообщения
292
Реакции
36
Итак суть вопроса такая:
1.Нужно добавить в БД объект с количеством переменных 55.
2.Добавление реализуется с помощью функций
3.Можно ли передать в функцию все 55 переменных или лучше разбить их и добавлять объект двуми(тремя) функциями?
P.S. Если можно ответ немного пояснить, потому что я не совсем понимаю этот вопрос.
 
Возможно нужно просто другое решение.
А так как вы хотите, можно и передать все 55 переменных ,а можно их передавать как 1 массив а в бд хранить например сериализацию массива.
 
Возможно нужно просто другое решение.
В смысле другое решение? Мне на самом деле нужно просто добавить объект в БД. Реализовано все на классах, поэтому необходимо использовать либо одну функцию, либо несколько. Работа с массивами оставляет желать лучшего, поэтому вариант отпадает. Могу сделать либо одну функцию, в которую буду отдавать все 55 переменных и в ней одним запросом (или несколькими отправлять это все в бд), либо же могу использовать 2-3 функции и в них уже производить в 1-й insert, во 2-й (и 3-ей) update по ключу.
Какой вариант предпочтительней с точки зрения времени выполнения скрипта и нагрузки на БД?
Если есть более интересное решение, тоже буду благодарен за помощь.
 
Работа с массивами оставляет желать лучшего, поэтому вариант отпадает.
Непонимаю почему? Объясните почему отказываетесь от этого варианта. На мой взгляд очень хороший и читабельный вариант. Просто передавать напрямую в функцию 55 переменных очень уж как то топорно.
 
Могу сделать либо одну функцию, в которую буду отдавать все 55 переменных и в ней одним запросом (или несколькими отправлять это все в бд), либо же могу использовать 2-3 функции и в них уже производить в 1-й insert, во 2-й (и 3-ей) update по ключу.
Какой вариант предпочтительней с точки зрения времени выполнения скрипта и нагрузки на БД?

если запросы не меняются то бд побарабану, нагрузка будет одинаковой.
передавать 55 параметров можно, проблем не будет, единственная проблема это последующее редактированияе.... это не очень удобно, а в остальном можно и так
 
Непонимаю почему? Объясните почему отказываетесь от этого варианта.
Я же говорю, есть некоторые проблемы со знаниями работы с массивами. Мне, например, на ум приходит такой вариант.
PHP:
$array = array($a, $b, $c, ..., $n);
function create_object($array)  {
$_sql = "INSERT INTO objects VALUES ('NULL', $array[0], $array[1], ...)";
$_sql_query = mysql_query($_sql);
}
Это если вкратце, будет ли работать такой вариант.
P.S. Структура БД изменению не подлежит.
 
При такой записи очень неудобно будет пользоваться этим массивом, делайте так, примерно:
PHP:
$params = array(
    'id' => $id,
    'title' => $title,
    'image' => $image
);
$myclass->create_object($params);
///// В классе //////
public function create_object($params) {
    return $params['image'];
}
Т.е., вместо простого массива используйте ассоциативный, тогда из функции вы сможете обращаться к его ключам, вместо того, чтобы запоминать какой индекс что содержит ($array['image'] вместо $array[2]).
 
Такой вариант будет работать. Но мне кажется стоит сделать так
PHP:
$array = array($a, $b, $c, ..., $n);
function create_object($array)  {
$_sql = "INSERT INTO objects VALUES ('NULL'"
foreach($array as $v){
   $_sql .= ", ".$v;
}
$_sql .= ")";
$_sql_query = mysql_query($_sql);
}
тогда вам будет удобней редактировать и будет уже не важно сколько вы передает переменных в массиве, запрос с генерируется автоматически. Единственное что нужно будет проверить, так это чтобы количество вставляемых переменных соответствовало количеству столбцов в таблице objects базы данных, иначе запрос просто не выполнится.
 
тогда вам будет удобней редактировать и будет уже не важно сколько вы передает переменных в массиве, запрос с генерируется автоматически. Единственное что нужно будет проверить, так это чтобы количество вставляемых переменных соответствовало количеству столбцов в таблице objects базы данных, иначе запрос просто не выполнится.
Согласен с вами, вариант действительно неплохой, но тогда мне придется проверять на существование каждую переменную, иначе будет несоответствие переменных и столбцов, как вы и сказали.
Наверное остановлюсь на этом варианте.
 
к массивам обращаться будет намного проще и красивее,какой-то изврат 55 переменных:confused: .
на-ка покури Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху