/** * Get/prepare the prepared statement for the given field obj * @param I2CE_FormField $fieldObj * @returns mixed. false om failure. a mdb2 preapred statement object on success */ protected function getFieldSave($fieldObj) { $formName = $fieldObj->getContainer()->getName(); $fieldName = $fieldObj->getName(); if (!array_key_exists($formName, $this->fieldSaves)) { $this->fieldSaves[$formName] = array(); } if (!array_key_exists($fieldName, $this->fieldSaves[$formName])) { $cols = $this->getSaveColumns($fieldObj->getContainer()); $table = $this->getTable($formName); if (!$table || !array_key_exists($fieldName, $cols)) { $this->fieldSaves[$formName][$fieldName] = false; return false; } $stmt = "UPDATE {$table} SET `{$cols[$fieldName]}` = ? WHERE `{$cols['id']}` = ?"; $prepStmt = $this->db->prepare($stmt, array($fieldObj->getMDB2Type(), 'text'), MDB2_PREPARE_MANIP); if (I2CE::pearError($prepStmt, "Error preparing save statemnt for " . $fieldObj->getName() . "\n" . $stmt)) { $prepStmt = false; } $this->fieldSaves[$formName][$fieldName] = $prepStmt; } return $this->fieldSaves[$formName][$fieldName]; }