Возможно с помощью mysqli_multi_query () .
Пример:
Ключ в том, что вы должны используйте mysqli_multi_query
, если вы хотите выполнить несколько запросов в одном вызове. По соображениям безопасности mysqli_query
не будет выполнять несколько запросов для предотвращения инъекций SQL.
Также следует учитывать поведение mysqli_store_result
. Он возвращает FALSE
, если запрос не имеет набора результатов (какие INSERT
запросы не выполняются), поэтому вы также должны проверить mysqli_error
, чтобы увидеть, что он возвращает пустую строку, означающую, что INSERT
был успешным.
См. mysqli_multi_query mysqli_more_results mysqli_next_result mysqli_store_result
Если вы хотите назначить глобальную переменную verbose
внутри вашей функции, вы можете сделать это:
def add(a,b, verbose_value):
global verbose
verbose = verbose_value
return a + b
result = add(2,3, False)
print(verbose)
Первой точкой, как правило, являются глобальные глобальные перемены - или, точнее, мутирующие или худшие повторные привязки глобальных функций внутри функции, следует избегать как можно больше.
Вторая точка: в Python, «global» на самом деле означает «уровень модуля» - нет глобальных «уровней процесса» (обратите внимание, что это запроектированный выбор, основанный на первом пункте выше)
Третья точка: для вашего общего прецедента ( настройки приложения), «менее злые» способы состоят в том, чтобы все ваши модули использовали систему настроек, вместо того, чтобы «передать параметр функции, которая устанавливает ее как глобальную, поэтому вам не нужно ее передавать», ваши модули просто импортируйте настройки и прочитайте значение параметра (см. параметры django для примера).
Недостатки в том, что 1 / только ваш собственный код может использовать эти настройки, а 2 / делает ваш код зависимым от этих настроек (иногда это может быть PITA).
И, наконец, , учитывая «подробное» имя, я предполагаю, что вы хотите настроить уровень детализации вывода отладки / ошибки вашей программы. Правильный способ сделать это стандартным, переносным и хорошо развязанным способом (который устранит оба недостатка выше для этой функции) состоит в том, что использует пакет регистрации stdlib . Этот пакет предназначен для развязки использования журнала (в коде «library», используя logger.log(level, msg, ...)
или один из его ярлыков) из конфигурации ведения журнала (которая является специфичной для приложения / установки). Сначала требуется немного обучения, но из опыта это хорошо проведенное время и на самом деле очень быстро экономит время .