|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
avp_, а нельзя всё-таки начать читать http://www.ibase.ru/files/articles/firebird_examples/how_to_create_application_firebird_php.pdf с самого начала, и внимательно особенно с 12й страницы? Раз автокоммит убран, значит транзакции надо самому стартовать и завершать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 22:10 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
avp_ При попытке явного управления из статьи выдаёт странную ошибку: Код: php 1. 2. 3.
Код: plaintext 1.
а какую версию PHP и firebird вы используете? У меня всё работает Код: 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.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Нормально PDO с Firebird можно использовать начиная с PHP 7.4, в предыдущих версиях было полно багов. Я сам штуки 4 пофиксил. А в 8.0 ещё одну. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 23:11 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Симонов Денис а какую версию PHP и firebird вы используете? У меня всё работает самый свежи php 8.0.6 FB2.0.7 диалект 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:05 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
kdv avp_, а нельзя всё-таки начать читать http://www.ibase.ru/files/articles/firebird_examples/how_to_create_application_firebird_php.pdf с самого начала, и внимательно особенно с 12й страницы? Раз автокоммит убран, значит транзакции надо самому стартовать и завершать. Всё это прочитано, но толком не понято. Просто по своему названию "AUTOCOMMIT" следует думать что он влияет только на алгоритм коммита. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 17:11 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Симонов Денис Как - писал, а зачем - нет. Всё это было не раз и к сожаленью Всё повторится, всё повторится, Я только время поменяю и лица... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2021, 19:31 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Появились ещё вопросы: 1. Почему тип дата-время возвращается строкой, а не объектом DateTime ? 2. Верно ли я понимаю что блобы попавшие в выборку автоматически целиком загружаются при каждом фетче? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 15:23 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
avp_, 1. потому что в PHP DateTime кастрированный. Посмотри его диапазон значений и сравни с диапазоном в Firebird. 2. верно, хотя кое что можно было бы докрутить ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2021, 15:42 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Странно, но такой запрос вызвает падение процесса php: Код: php 1.
В то время как через prepare - выполняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 16:17 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Как правильно биндить параметры имеющие тип дата-время? При попытке передать строкой выдаёт ошибку "General error: -804 Dynamic SQL Error SQL error code = -804 Incorrect values within SQLDA structure" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 17:18 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
avp_, пример кода дашь, что ты делаешь, тогда может и подскажу ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 17:32 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Сорри, косяк бы в другом - при пропущенном параметре странное сообщение об ошибке. Но небольшой вопрос остаётся - почему нельзя в параметр записать тип php DateTime а надо преобразовывать в строку понимаемую сервером. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 18:27 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
avp_, Отвечал уже. Посмотри какой диапазон дат поддерживает пыховский тип и какой фб ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 23:05 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Вообще странно что все пытаются напрямую голый пдо юзать. Ну напишите вы обертку вокруг него которая будет нужные вам преобразования делать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 23:07 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Симонов Денис Вообще странно что все пытаются напрямую голый пдо юзать. Ну напишите вы обертку вокруг него которая будет нужные вам преобразования делать А что такого в голом pdo? Всё вроде пока устраивает кроме работы с датами. Обёртку писать только ради них как то лениво. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2021, 19:56 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Выявил некоторые странности при работе с транзациями через PDO. 1. Если установлен PDO::ATTR_AUTOCOMMIT=> true, то автокоммит делается не после каждого запроса, а только после каждого МОДИФИЦИРУЮЩЕГО запроса. Как он определяет что запроса модифицируюций - х.з. Наступил на грабли когда в цикле опрашивал таблицу селектами, а транзация по дефлоту снапшот и не коммитилась. 2. Если установлен PDO::ATTR_AUTOCOMMIT=> true, то в блоке между PDO::beginTransaction и PDO::commit автокоммит всё равно работает для модифицирующих операторов. Вот это весьма странно. Т.е. в этом случае beginTransaction нельзя использовать. 3. Если установлен PDO::ATTR_AUTOCOMMIT=> false, то без без beginTransaction ни один оператор не сработает, даже селект. Также если не было нигде commit, то при окончании скрипта транзакция откатывается. Вроде бы логично. Но непонятно тогда что в случае если в скрипте были только чтения - тоже роллбэк будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 17:07 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
автокоммит - ЗЛО ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 17:09 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Мимопроходящий автокоммит - ЗЛО Это да. Но как то неохота в конце каждого скрипта вставлять $db->commit(); Хотя может оно будет и правильно... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 18:49 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Мимопроходящий автокоммит - ЗЛО ой, люто плюсую... зы лет пять назад понадобилось из golang в fb ходить, решение которое было на тот момент (по моему до сих пор другого не появилось) использовало параметры транзакции как в fb/ib по умолчанию повелось, стартует транзакция по умолчанию (не php, висеть долго будет), отдельно можно стартануть транзакцию, но параметры ей задать нельзя (на тот момент)... пришлось выкручиваться - прикрутили параметры транзации в параметры соединения, так и жевет это по сей день с двумя пулами коннетов - на чтение и на запись )) костыль? еще какой! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 20:49 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Проблема то в том что по умолчанию автокоммит включен. Итого пока остановился на такой схеме работы: 1. PDO::ATTR_AUTOCOMMIT=> false 2. создаём базу $db = new PDO(....) 3. сразу затем вызываем $db->beginTransaction(); 4. С помощью register_shutdown_function регистрируем функцию которая делает $db->commit(); Итого все скрипты работают в одной транзакции которая автокоммитится при завершении. Для особых случае планируется сделать доп. флаг: aвтокоммит/автороллбэк. 5. Ещё желательно сделать какой то флаг чтобы скрипт явно декларировал потребность в rw транзакции и чтобы по дефлоту транзакция была read_only. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 21:18 |
|
PDO Firebird bugs
|
|||
---|---|---|---|
#18+
Что то никак у меня не запускаются транзакции вручную: Код: php 1. 2.
Выдаёт ошибку: Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: PDO->exec('SET TRANSACTION...') Пробовал FB2.0-2.5, диалекты 1,3 - нигде не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 17:42 |
|
|
start [/forum/topic.php?fid=40&msg=40108999&tid=1559821]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
420ms |
get tp. blocked users: |
1ms |
others: | 389ms |
total: | 902ms |
0 / 0 |