TYPO 3 최신 삽 입 된 데이터 id 가 져 오기

원본 링크:https://www.whongbin.cn/index/article/detail/id/29.html
TYPO 3 최신 삽 입 된 데이터 uid 가 져 오기
typo 3 는 독일 인 들 이 개발 한 사용 하기 쉬 운 CMS 로 플러그 인 방식 으로 조립 시스템 을 사용 하여 시스템 이 완전히 대상 을 대상 으로 합 니 다. 물론 원생 SQL 도 일부 데 이 터 를 처리 할 수 있 습 니 다. 이 글 은 typo 3 에서 새로운 데 이 터 를 삽입 하 는 ID 를 어떻게 얻 는 지 공유 합 니 다.
대상 삽입 시 가 져 오 는 방법
위 에서 말 했 듯 이 typo 3 는 완전히 대상 을 대상 으로 하 는 것 이다. typo 3 에서 1 대 1, 1 대 1, 다 대 1, 다 대 1 의 관계 에 대해 매우 우호 적 인 처리 방식 을 가진다.
/**
 * action create
 *
 * @param \Whb\ExtensionName\Domain\Model\Files $newFiles
 * @return void
 */
public function createAction(\Whb\ExtensionName\Domain\Model\Files $newFiles)
{
    #...      ...
    $newFiles->setTitle('demo');
    $this->addFlashMessage('    !', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::WARNING);
    $this->filesRepository->add($newFiles);
    //       
    $persistenceManager = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager::class);
    $persistenceManager->persistAll();
    $newDataId = $newFiles->getUid();
    var_dump($newDataId);//         uid
    //$this->redirect('list');
}

조수 SQL 함 수 를 사용 하여 삽입 할 때
typo 3 는 완전히 대상 을 대상 으로 한다 고 하지만 가끔 특별한 상황 이 발생 할 수 있 습 니 다. 이 럴 때 typo 3 가 가지 고 있 는 SQL 조수 함수 로 데 이 터 를 삽입 할 수 있 습 니 다.
//      
$datas = array();
$datas["items"]= 2;
$datas["getnum"]= 3;
$datas["usednum"]= 0;
$datas["userid"]= 1;
$datas["crdate"]= time();
$datas["pid"]= 110;

$GLOBALS['TYPO3_DB']->exec_INSERTquery("tx_demo_domain_model_table", $datas);
$newDataUid = $GLOBALS['TYPO3_DB']->sql_insert_id();

네 이 티 브 MySQL 삽입 사용 시
typo 3 에서 저 희 는 원생 MySQL 을 사용 하여 데 이 터 를 삽입 할 수 있 습 니 다. 예 를 들 어 원 격 api 에서 데 이 터 를 수정 할 때 예 를 들 어 알 리 페 이의 결제 리 셋 을 처리 하면 다음 과 같은 방법 으로 처리 할 수 있 습 니 다. 번 거 로 운 model 류 의 계승 을 없 앨 수 있 지만 스스로 MySQL 연결 풀 을 써 야 합 니 다.
$con = new mysqli($config['host'],$config['user'],$config['password'],$config['dbname']);
if(!$con){
    die("connect error:".mysqli_connect_error());
}
//      last_insert_id
$query = "select last_insert_id()";
$newDataUid = $con->execute($query);
//   
$query = "select max(uid) from table";
$newDataUid = $con->execute($query);

메모: 모든 추가 ID 를 되 돌려 주 는 것 은 update 작업 이 아니 라 insert 작업 일 수 있 습 니 다.

좋은 웹페이지 즐겨찾기