コード例 #1
0
 /**
  * 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];
 }