Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
Привет All! СН2015Г! Сразу к теме! Пишу на пхп. Написал функцию типа: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Спецом удаляю запись на которую есть ссылки в других таблицах. Естественно в PG ошибка и соответственно if(!$result) выполняется. Так вот, то что возвращает эта функция идет потом в js: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. И тут вопрос на который пол дня я уже потратил! pg_delete генерит исключение, а оно мне возвращается в месте с тем что возвращает функция deleteRow. А мне надо чтобы приходил ответ только то что возвращает функция deleteRow. короче вот ответ: код<br /> <b>Warning</b>: pg_delete(): ERROR: update or delete on table "users" violates foreign key constraint "fk_k025do01a48fmw803mfehxg0n" on table "user_organizations" DETAIL: Key (id)=(1) is still referenced from table "user_organizations". in <b>...\Classes\base\Postgres.php</b> on line <b>165</b><br /> {"1":{"state":"ERROR","message":"<div style=\"display:none\" id=\"div-dialog-warning\">\r\n <p><span class=\"ui-icon ui-icon-alert\" style=\"float:left; margin:0 7px 20px 0;\"><\/span><div\/>ERROR: update or delete on table \"sys_users\" violates foreign key constraint \"fk_k025do01a48fmw803mfehxg0n\" on table \"user_organizations\"\nDETAIL: Key (id)=(1) is still referenced from table \"user_organizations\".<\/p>\r\n <\/div><script type=\"text\/javascript\">\r\n $(\"#div-dialog-warning\").dialog( {\r\n buttons: {\r\n \"Ok\" : function () {\r\n $(this).dialog(\"close\");\r\n }\r\n },\r\n close: function(event, ui)\r\n {\r\n $(this).dialog( \"close\" );\r\n $(this).dialog(\"destroy\").remove();\r\n },\r\n dialogClass: \"error\",\r\n height: 160,\r\n modal: true,\r\n resizable: false,\r\n title: Ошибка при удалении!\r\n } );\r\n <\/script>"}} А должно только это: код{"1":{"state":"ERROR","message":"<div style=\"display:none\" id=\"div-dialog-warning\">\r\n <p><span class=\"ui-icon ui-icon-alert\" style=\"float:left; margin:0 7px 20px 0;\"><\/span><div\/>ERROR: update or delete on table \"sys_users\" violates foreign key constraint \"fk_k025do01a48fmw803mfehxg0n\" on table \"user_organizations\"\nDETAIL: Key (id)=(1) is still referenced from table \"user_organizations\".<\/p>\r\n <\/div><script type=\"text\/javascript\">\r\n $(\"#div-dialog-warning\").dialog( {\r\n buttons: {\r\n \"Ok\" : function () {\r\n $(this).dialog(\"close\");\r\n }\r\n },\r\n close: function(event, ui)\r\n {\r\n $(this).dialog( \"close\" );\r\n $(this).dialog(\"destroy\").remove();\r\n },\r\n dialogClass: \"error\",\r\n height: 160,\r\n modal: true,\r\n resizable: false,\r\n title: Ошибка при удалении!\r\n } );\r\n <\/script>"}} Может кто нибудь объяснит почему так происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 13:00 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
авторviolates foreign key constraint переведи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 13:19 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
ScareCrow, авторнарушает ограничение внешнего ключа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 13:28 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
Дело в том что не надо за меня выводить какие-то там сообщения, исключения и т.п. я их сам обработаю и выведу в другом виде. нужно короче что то типа try catch сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 13:31 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
AndronovMVДело в том что не надо за меня выводить какие-то там сообщения, исключения и т.п. я их сам обработаю и выведу в другом виде. нужно короче что то типа try catch сделать Код: php 1. 2. 3. ну ты определись, да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 14:20 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
ScareCrowну ты определись, даТут автору не нравистя что php варнинги печатает :), а они не ложатся под синтаксис json, вот и все проблема :). Кстати вопрос правильно поставили что кто то тупит, а не что то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 14:38 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
ScareCrow, ScareCrowAndronovMVДело в том что не надо за меня выводить какие-то там сообщения, исключения и т.п. я их сам обработаю и выведу в другом виде. нужно короче что то типа try catch сделать Код: php 1. 2. 3. ну ты определись, да Нет, не верно! Независимо от того вернет ли что нить result или нет, если будет исключение, Apache его кинет в браузер. Я по другому немного пошел. Теперь использую асинхронные запросы к БД, так можно определить что вернется. Код: 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. Но все равно спасибо за внимание! Надеюсь чем нить помог следующему спрашивальщику! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 14:41 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
SmeL_md, Ну молодец что понял, и коль уж намекаешь "кто то тупит", то дал бы ответ лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 14:42 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
авторНет, не верно! Независимо от того вернет ли что нить result или нет, если будет исключение, Apache его кинет в браузер. неа. mixed pg_delete ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] ) Return Values ¶ Returns TRUE on success or FALSE on failure ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 14:48 |
|
||
|
PHP, Postgres кто-то тупит
|
|||
|---|---|---|---|
|
#18+
ScareCrow, Я это видел. pg_delete действительно возвраoается true или false или строку запроса если стоит спец флаг PGSQL_DML_STRING в option. Код внутри pg_delete в моем случае генерит исключение, которое веб-сервер мне всегда покажет. Проблема была не в том что функция не то возвращает, а в том, что помимо результатов я еще и сообщение об ошибке получал. Правильно сказал SmeL_md =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2015, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38854237&tid=1462095]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 427ms |

| 0 / 0 |
