Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > delete


Автор: Reptor 8.4.2006, 10:35
Почему может не выполняться delete из БД?

Автор: ZlojEzh 8.4.2006, 10:43
блин, где-то на форуме видел ссылку на обалденную статью о том, как нужно задавать вопросы
жалко ссылку потерял
если кто-то помнит - киньте сюда
человеку очень поможет...


Reptor, ну нельзя ж так вопросы задавать...
покажи хоть sql-запрос и кусок скрипта - тогда постараемся помочь

Автор: Serkys 8.4.2006, 10:44
Юзер может не иметь на это прав.
Добавлено @ 10:49
http://forum.vingrad.ru/index.php?act=SR&f=27

Автор: Reptor 8.4.2006, 10:57
Извеняюсь. Есть обэкт для работы с БД вот такой он:
Код

local_db Object
(
    [Host] => localhost
    [Database] => db_profits_test
    [User] => www
    [Password] => 
    [Encoding] => 
    [Link_ID] => Resource id #16
    [Query_ID] => Resource id #26
    [Thread_ID] => 422839
    [Record] => Array
        (
            [0] => 2
            [id] => 2
            [1] => softwareprofit.com
            [name] => softwareprofit.com
        )

    [Row] => 1
    [Errno] => 0
    [Errors] => Array
        (
        )

    [Auto_Free] => 1
    [Err_Mode] => 0
    [Is_transaction] => 0
    [Debug_mode] => 4
    [Error] => 
)


перед запросом ну тоесть перед запросом где delete (delete абсолютно правильный) он такой
Код

local_db Object
(
    [Host] => localhost
    [Database] => db_profits_test
    [User] => www
    [Password] => 
    [Encoding] => 
    [Link_ID] => Resource id #16
    [Query_ID] => 1
    [Thread_ID] => 422839
    [Record] => Array
        (
            [0] => 3113
            [last_id] => 3113
        )

    [Row] => 0
    [Errno] => 0
    [Errors] => Array
        (
        )

    [Auto_Free] => 1
    [Err_Mode] => 0
    [Is_transaction] => 0
    [Debug_mode] => 4
    [Error] => 
)


отличаеться вот это [Query_ID] ну это всё что я заметил а потом сразу запрос

Код

$db->query("ROLLBACK");
 echo "<pre>";
print_r($db);
$db->query("DELETE FROM banners WHERE id=".$id_banner); 


Вот такая вот ситуация в чем может быть проблема совсем неизвестно

Автор: ZlojEzh 8.4.2006, 11:05
я так понял ты c транзакциями работаешь?
COMMIT сделать не забываешь после запроса?

если с этим все ок - попробуй вывести запрос на экран и вручную запустить его в мускуле

Автор: Reptor 8.4.2006, 11:08
Код

#1217 - Cannot delete or update a parent row: a foreign key constraint fails


Если делать вручную то такая ошибка
да и commit я не делал но сделал и всеровно нет

Автор: ZlojEzh 8.4.2006, 11:12
при задании внешнего ключа надо указать
Код

ON DELETE CASCADE, ON UPDATE CASCADE

точного синтаксиса не помню, почитай мануал

Автор: Reptor 8.4.2006, 11:31
Так это надо при создании таблици делать насколько я понял а при самом удалении что б не изменять таблицу можно что то зделать?

Автор: ZlojEzh 8.4.2006, 12:22
удалять сначала значения из подчиненной таблицы по этому внешнему ключу

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)