/** * Removes existing relations from the mm table from the database */ protected function deleteExistingRelations() { $deleteQuery = $this->typo3Db->DELETEquery($this->table, $this->uidLocalField . '=' . $this->localUid); $this->utilityFuncs->debugMessage('sql_request', array($deleteQuery)); $deleteResult = $this->typo3Db->sql_query($deleteQuery); if (!$deleteResult) { $this->utilityFuncs->throwException('Error in SQL query for deleting existing relations: ' . $this->typo3Db->sql_error()); } }
/** * Db delete object * * @param int $uid Uid * @param Tx_Commerce_Dao_BasicDaoObject $object Object * * @return void */ protected function dbDelete($uid, Tx_Commerce_Dao_BasicDaoObject &$object) { $dbWhere = 'uid = ' . (int) $uid; // execute query $this->database->exec_DELETEquery($this->dbTable, $dbWhere); // any errors $error = $this->database->sql_error(); if (!empty($error)) { $this->addError(array($error, $this->database->DELETEquery($this->dbTable, $dbWhere))); } // remove object itself $object->destroy(); }
/** * Returns the last built SQL DELETE query with tabs removed. * * This function tries to retrieve the last built SQL DELETE query from the database object property $this->debug_lastBuiltQuery (works only since T3 3.8.0 with $GLOBALS['TYPO3_DB']->store_lastBuiltQuery = true). If this does not succeed, a fallback method is used (for former versions of class.\TYPO3\CMS\Core\Database\DatabaseConnection.php [TYPO3 3.6.0-3.8.0beta1] or $GLOBALS['TYPO3_DB']->store_lastBuiltQuery _not_ set to true) to retrieve the query string from \TYPO3\CMS\Core\Database\DatabaseConnection::DELETEquery() - as this is an overhead (\TYPO3\CMS\Core\Database\DatabaseConnection::DELETEquery() is called a second time after the call from \TYPO3\CMS\Core\Database\DatabaseConnection::exec_SELECT_query) IMO this should not be a permanent solution. * * @param DatabaseConnection TYPO3 database object (instance of \TYPO3\CMS\Core\Database\DatabaseConnection) used for last executed SQL query * @param string from clause/table name passed to last executed SQL query (see comment of \TYPO3\CMS\Core\Database\DatabaseConnection::exec_DELETEquery()) * @param string where clause passed to last executed SQL query (see comment of \TYPO3\CMS\Core\Database\DatabaseConnection::exec_DELETEquery()) * @return string last built SQL query with tabs removed * @see class.\TYPO3\CMS\Core\Database\DatabaseConnection.php, \TYPO3\CMS\Core\Database\DatabaseConnection::exec_DELETEquery() * @author Rainer Kuhn */ public static function returnLastBuiltDeleteQuery(DatabaseConnection $dbObject, $from_table, $where_clause) { // try to get query from debug_lastBuiltQuery (works only for T3 3.8.0 with $GLOBALS['TYPO3_DB']->store_lastBuiltQuery = true) $query = $dbObject->debug_lastBuiltQuery; // fallback for former versions of class.\TYPO3\CMS\Core\Database\DatabaseConnection.php (TYPO3 3.6.0-3.8.0beta1) or $GLOBALS['TYPO3_DB']->store_lastBuiltQuery _not_ set to true if (strlen($query) < 1) { $query = $dbObject->DELETEquery($from_table, $where_clause); } // remove tabs and return query string return str_replace(chr(9), '', $query); }
/** * @test * * @return void */ public function deleteQueryCreateValidQuery() { $queryExpected = "DELETE FROM {$this->testTable} WHERE id=1"; $queryGenerated = $this->subject->DELETEquery($this->testTable, 'id=1'); $this->assertSame($queryExpected, $queryGenerated); }