value) * @return void */ public function checkPersistence( ezcPersistentObjectDefinition $def, ezcDbHandler $db, array $state ) { // store id $this->id = $state[$def->idProperty->propertyName]; // check if there is an object with this id already $q = $db->createSelectQuery(); $q->select( '*' )->from( $def->table ) ->where( $q->expr->eq( $def->idProperty->columnName, $q->bindValue( $this->id ) ) ); try { $stmt = $q->prepare(); $stmt->execute(); } catch ( PDOException $e ) { throw new ezcPersistentQueryException( $e->getMessage() ); } $row = $stmt->fetch( PDO::FETCH_ASSOC ); $stmt->closeCursor(); if ( $row !== false ) // we got a result { return true; } return false; } /** * Sets the correct id on the insert query. * * @param ezcPersistentObjectDefinition $def * @param ezcDbHandler $db * @param ezcQueryInsert $q * @return void */ public function preSave( ezcPersistentObjectDefinition $def, ezcDbHandler $db, ezcQueryInsert $q ) { $q->set( $def->idProperty->columnName, $q->bindValue( $this->id ) ); } /** * Returns the integer value of the generated identifier for the new object. * * Called right after execution of the insert query. * * @param ezcPersistentObjectDefinition $def * @param ezcDbHandler $db * @return int */ public function postSave( ezcPersistentObjectDefinition $def, ezcDbHandler $db ) { return $this->id; } } ?>