간략한 설명 : FUEL 포럼에서 이것을 묻는 중 시도했지만 등록하려고 할 때마다 포럼에 "활성화 이메일 전송 실패"메시지가 표시되고 기록 할 수 없습니다. 또는 내 계정을 재설정하십시오. 잘하면 여기 사람들이 그것을 확인합니다. 이전에이 사이트에서 FUEL 개발자를 보았습니다.FUEL/ActiveRecord에 NULL 값을 삽입하는 방법
CREATE TABLE `test` (
`user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR(128) NULL ,
`last_login` DATETIME NULL
) ENGINE = InnoDB
분명, 여러분의 많은과는 달리, 나는 개인적으로 데이터베이스의 NULL 값을 활용하고자 : 여기
는 예를 들어 MySQL의 테이블입니다. 평신도의 용어에서 NULL은 값으로 초기화 된 적이 없다는 것을 의미합니다. 이 경우 사용자가 로그인하지 않은 경우 last_login 값을 NULL로 설정하여 해당 레코드에 반영하고 싶습니다. 그래서, NULL = "결코 로그인하지 않았습니다."명령 줄이나 phpMyAdmin을 통해 데이터베이스에 새 사용자를 추가하려는 경우 다음 쿼리를 입력합니다.
INSERT INTO `test` (
`user_id` ,
`username` ,
`last_login`
)
VALUES (
NULL , 'test_person_1', NULL
);
이는 해당 쿼리의 결과입니다. 이제
+---------+---------------+--------------+
| user_id | username | last_login |
+---------+---------------+--------------+
| 1 | test_person_1 | NULL |
+---------+---------------+--------------+
,의는 연료의 액티브 여기
가 (아주 간단) 내 모델 사용하자 : 여기
<?php
class Model_Test extends ActiveRecord\Model {
public $primary_key = 'user_id';
public $table_name = 'test'; // Why does fuel want to pluralize table names? Grr.
}
그리고는 삽입 컨트롤러 방법의 슈퍼 기본적인 예이다 테이블에 기록하십시오. 같은 데이터를 반복해서 반복해서 삽입하는 작업은 결코 원하지 않는다는 것을 알고 있습니다. 이것은 단지 시험 일뿐입니다. 시원한?
public function action_save_example1()
{
$o_user = new Model_Test(array(
'username' => 'test_person_2',
));
}
는 그리고 이것은 내가 그 방법을 실행 한 후 무엇을 얻을 수 있습니다 :
mysql> select * from test;
+---------+---------------+---------------------+
| user_id | username | last_login |
+---------+---------------+---------------------+
| 1 | test_person_1 | NULL |
| 2 | test_person_2 | 0000-00-00 00:00:00 |
+---------+---------------+---------------------+
2 rows in set (0.00 sec)
공지 사항이 test_person_2의 DATETIME 필드는 "0000-00-00 00:00:00"그건 NULL이 아니다. last_login이 null이라고 명시 적으로 명시하더라도, FUEL의 ActiveRecord 클래스는 null이 아닙니다. 예.
public function action_save_example1()
{
$o_user = new Model_Test(array(
'username' => 'test_person_2',
'last_login' => NULL
));
}
ActiveRecord가 실행중인 쿼리라고 생각합니다.
INSERT INTO `portal_links`.`test` (
`user_id` ,
`username` ,
`last_login`
)
VALUES (
NULL , 'test_person_2', ''
);
테스트 로직의 일종이있을 필요가있는 경우 값 === NULL 삽입하거나 업데이트하고 NULL의 경우, 그것은 '키워드 NULL을 사용하지 않아야 전에. CodeIgniter의 ActiveRecord 클래스는 NULL과 ''의 차이점을 이해하고있는 것으로 보입니다.
<?php
// CodeIgniter Example
$o_query = $this->db->insert('test', array(
'user_id' => NULL,
'username' => 'code_igniter_user',
'last_login' => NULL
));
우리가 그 AR을 죽인 것을 기쁘게 생각합니다. 그것은 제 3 자 였고 API가 좋았지 만 꽤 약했다. ORM이 훨씬 좋습니다. –