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"