Codeigniter ActiveRecord güncelleme yöntemi NULL değer eklemek için reddediyor

0 Cevap php

Benim DB üzerinde bir sütun üzerinde bir güncelleme yürütmek Codeigniters Etkin kayıt kitaplığı kullanıyorum.

İşte tablo için SQL bulunuyor

CREATE TABLE `schedules` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`reservation_id` INT(11) NULL DEFAULT NULL,
`title` VARCHAR(255) NOT NULL,
`description` VARCHAR(512) NULL DEFAULT NULL,
`start_date` DATE NOT NULL,
`start_time` TIME NOT NULL,
`end_time` TIME NULL DEFAULT NULL,
`enabled` TINYINT(1) NULL DEFAULT '1',
`status` ENUM('OPEN','RESERVED') NULL DEFAULT 'OPEN',
PRIMARY KEY (`id`),
INDEX `fk_schedules_reservations` (`reservation_id`),
CONSTRAINT `fk_schedules_reservations` FOREIGN KEY (`reservation_id`) REFERENCES `reservations` (`id`) ON UPDATE NO ACTION ON DELETE NO ACTION

)

Ben reservation_id ilan ettik null (reservation_id INT(11) NULL DEFAULT NULL)

Sorun CI ben deyimi oluşturmak zaman bir NULL değeri göndermek istediğiniz görünmüyor olmasıdır.

$data['status'] = $this->Schedule->get_status_open();
$data['reservation_id'] = null; 
$this->Schedule->update($s_id, $data);

Bu kod biraz sadece aşağıdaki hata iletisini oluşturur

Error Number: 1452

Cannot add or update a child row: a foreign key constraint fails (`ethyme/schedules`, CONSTRAINT `fk_schedules_reservations` FOREIGN KEY (`reservation_id`) REFERENCES `reservations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

UPDATE `schedules` SET `status` = 'OPEN', `reservation_id` = '' WHERE `id` = '4'

Ben bildiklerimi itibaren, yapmanız gereken tüm NULL ve AR bir NULL değer olduğunu alinmali değerini ayarlamak, ancak burada durum böyle görünmüyor. Sadece boş değerler göndererek tutar.

Ben o iş yapmak için başka bir şey yapmak için CI için yeni var mı? herhangi bir fikir?

0 Cevap