Arbeiten mit MySQL in einer TYPO3 Extension
Wer in einer eigenen TYPO3 Extension mit der Datenbank MySQL arbeitet, sollte möglichst die TYPO3 internen Funktionen benutzen.
Grundsätzich die wichtigsten:
SELECT
INSERT
UPDATE
DROP
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'*', #select
'fe_users', #from
'deleted=0', #where
$groupBy='',
$orderBy='',
$limit='');
while( $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$mitarbeiterauswahl.='<option>'.$row['username'].'</option>';
}
Ein SELECT Beispiel
$tabellenname='DerNamedeinerTabelle';
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'*',#select
$tabellenname, #from
'deleted=0', #where
$groupBy='',
$orderBy='',
$limit='');
$content="<table><tr>";
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$content.= '<td>'.$row['vorname'].'</td><td>'.$row['nachname'].'</td>';
}
$content.="</tr></table>";
return $this->pi_wrapInBaseClass($content);
und noch ein SELECT Beispiel
$pid = $GLOBALS["TSFE"]->id;
$fieldList = "field1,field2,field3";
$dataArr = array();
$dataArr["field1"] = "value1";
$dataArr["field2"] = "value2";
$dataArr["field3"] = "value3";
$query = $this->cObj->DBgetInsert("tx_ext_name_tablename", $pid, $dataArr, $fieldList);
mysql(TYPO3_db, $query);
if (mysql_error()) debug(array(mysql_error(), $query));
Ein INSERT Beispiel
$tabellenname='DerNamedeinerTabelle';
$updateArray = array("vorname" => t3lib_div::_GP('vorname'),
"nachname" =>t3lib_div::_GP('nachname'));
$where="uid='".t3lib_div::GPVar("auid")."'";
$query = $GLOBALS['TYPO3_DB']->exec_UPDATEquery($tabellenname,$where, $updateArray);
Ein UPDATE Beispiel
$tabelle="tx_ext_name_main";
$where="id ='$model_id'";
$array=array('hobbys'=>$hobbys, 'job'=>$job, 'groesse'=>$groesse, 'club'=>$club);
$GLOBALS['TYPO3_DB']->exec_UPDATEquery($tabelle, $where, $array);
und noch ein UPDATE Beispiel