QUERY: alle Datensätze in einem Array speichern
$selectFields = '*'; $fromTable = ''; $whereClause = '1'; $groupBy = ''; $orderBy = ''; // 'field(uid,' . $orderedUidList . ')'; $limit = ''; $GLOBALS['TYPO3_DB']->store_lastBuiltQuery = 1; $recordList = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( $selectFields , $fromTable , $whereClause .$this->cObj->enableFields($fromTable) , $groupBy , $orderBy , $limit ); //debug(array('fields' => $selectFields // ,'from' => $fromTable // ,'where' => $whereClause // ,'enable' => $this->cObj->enableFields($fromTable) // ,'group' => $groupBy // ,'order' => $orderBy // ,'limit' => $limit // ,'query' => $GLOBALS['TYPO3_DB']->debug_lastBuiltQuery // ,'recordList' => $recordList // ),'SELECT',__LINE__,__FILE__); // direkte Weiter-Verarbeitung: foreach ((array)$recordList as $record) { //$record['uid'] //$translatedRecord = $GLOBALS['TSFE']->sys_page->getRecordOverlay($fromTable // ,$record // ,$GLOBALS['TSFE']->sys_language_uid // ,$GLOBALS['TSFE']->config['config']['sys_language_overlay'] // ); }
$query='SELECT '.$selectFields.' FROM '.$fromTable
.' WHERE '.$whereClause.$this->cObj->enableFields($fromTable)
.' GROUP BY '.$groupBy
.' ORDER BY '.$orderBy
.' LIMIT '.$limit
;
INSERT: Daten in einem Datensatz speichern
$into_table =''; $field_values=array('fieldname1' => $value1 ,'fieldname2' => $value2 ,'fieldname3' => $value3 ,'fieldname4' => $value4 ,'fieldname5' => $value5 ,'tstamp' => time() ,'crdate' => time() ); $res=$GLOBALS['TYPO3_DB']->exec_INSERTquery( $into_table , $field_values ); $newUId = $GLOBALS['TYPO3_DB']->sql_insert_id();
$query='INSERT INTO '.$into_table.' SET ';
foreach ($field_values as $k=>$v) $query.=$k.'="'.$v.'",'
UPDATE: Daten aktualisieren
$into_table =''; $where_clause=''; $field_values = array('fieldname1' => $value1 ,'fieldname2' => $value2 ,'fieldname3' => $value3 ,'fieldname4' => $value4 ,'fieldname5' => $value5 ,'tstamp' => time() ); $res = $GLOBALS['TYPO3_DB']->exec_UPDATEquery( $into_table , $where_clause , $field_values ); // $res : richtige Syntax, das kann aber auch heißen dass trotzdem keine Datensätze verändert wurden. daher: $cnt = $GLOBALS['TYPO3_DB']->sql_affected_rows(); // $cnt : Anzahl betroffener Datensätze
$query='UPDATE '.$into_table.' SET ';
foreach ($field_values as $k=>$v) $query.=$k.'="'.$v.'",';
$query.=' WHERE '.$where_clause;
DELETE: Daten löschen
$from_table =''; $where_clause=''; $res = $GLOBALS['TYPO3_DB']->exec_DELETEquery( $from_table , $where_clause ); // $res : richtige Syntax, das kann aber auch heißen dass trotzdem keine Datensätze gelöscht wurden. daher: $cnt = $GLOBALS['TYPO3_DB']->sql_affected_rows(); // $cnt : Anzahl betroffener Datensätze
$query='DELETE FROM '.$into_table.' WHERE '.$where_clause;
Ein eigenes cObj kann man sich jederzeit so generieren:
$this->cObj = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tslib_cObj');
um das TYPO3 Caching zu nutzen sollte man allerdings direkt mit TCEMAIN arbeiten: "Handling data in TYPO3 with tcemain"