Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.09.2013, 09:26
|
|||
|---|---|---|---|
PHP: Доступ из функции в global scope |
|||
|
#18+
Есть у меня примерно такой код: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. У меня используется функция db_query, которая выполняет запрос и возвращает результаты (при успешном выполнении) или false (при ошибке). Обычно этого хватает, но для удобства (для логов) хотелось бы дополнительно получить значение mysqli_error. Не подскажите, как это можно сделать? (речь, ествественно, не о том, чтобы вывести mysqli_error внутри db_query; его нужно получить в том месте, откуда db_query вызывался). Мне в голову приходит только два способа, но оба мне не нравятся: либо в db_query сохранять значение mysqli_error в глобальную переменную $lastmysqlerror, либо (пользуясь тем, что указатель $dbh глобальный) использовать $dbh->error. Второй способ конечно получше, но я бы хотел полностью абстрагироваться от глобальных переменных. Может быть в MySQL есть какой-нибудь глобальный стек ошибок? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2013, 11:47
|
|||
|---|---|---|---|
PHP: Доступ из функции в global scope |
|||
|
#18+
Alibek B., ну а кто мешает сделать echo mysqli_error($dbh); в том месте где нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2013, 14:00
|
|||
|---|---|---|---|
PHP: Доступ из функции в global scope |
|||
|
#18+
Код: php 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2013, 14:11
|
|||
|---|---|---|---|
|
|||
PHP: Доступ из функции в global scope |
|||
|
#18+
Я бы не советовал так размазывать код. Не совсем правильно в выполняем коде, возвращать результат работы методов mysqli. А если вы захотите к примеру заменить mysqlli на DBAL ? Вам нужно будет по всему коду проверять где вы использовали $mysqli->error_list к примеру. Логика в том, что обработка ошибок базы данных, должна полностью быть реализована в классе базы данных, и не выходит за его приделы. К примеру Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. Конечно можно еще и в самом классе DB реализовать логику обработки ошибок с легированием запросом. В таком случае ваш код, вообще не нужно подтачивать под обработку ошибок. Ну здесь уже кому как нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2013, 14:47
|
|||
|---|---|---|---|
PHP: Доступ из функции в global scope |
|||
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. не пишите так больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.09.2013, 14:56
|
|||
|---|---|---|---|
|
|||
PHP: Доступ из функции в global scope |
|||
|
#18+
И почему же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&mobile=1&tid=1463412]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 366ms |

| 0 / 0 |
