} else { $urlerror = $this->getMessagePage(); } $this->setLogRun(false); if (defined("RADRIA_LOG_RUN_MYDB_EVENTS")) { $this->setLogRun(RADRIA_LOG_RUN_MYDB_EVENTS); } $this->setLog("\n mydb_add record start" . date("Y-m-d H:i:s")); $disp = new Display($goto); if ($submitbutton != $strCancel) { if ($doSave == "yes") { $table = $this->getParam("table"); $fieldlist = ''; $valuelist = ''; $qGetFields = new sqlQuery($this->dbc); $qGetFields->setTable($table); $tableFields = $qGetFields->getTableField(); $reg = new Registry($dbc); $reg->registryFromTable($table); if ($GLOBALS['cfg_local_db'] == "mysql") { while (list($key, $fieldname) = each($tableFields)) { if (strlen($fields[$fieldname]) > 0) { if (get_magic_quotes_gpc()) { $fields[$fieldname] = stripslashes($fields[$fieldname]); } $fieldname = str_replace("`", "", $fieldname); $fieldlist .= "`{$fieldname}`, "; if ($fields[$fieldname] == "null") { $val = $fields[$fieldname]; // } elseif (is_numeric($fields[$fieldname])) { // $val = $fields[$fieldname];
/** * Add a record to the table. * And set the primary key so next time its an update * http://radria.sqlfusion.com/documentation/core:by_example_php5#add_delete_edit * @return boolean */ function add($mix = null) { $qGetFields = new sqlQuery($this->getDbCon()); $qGetFields->setTable($this->getTable()); $tableFields = $qGetFields->getTableField(); $this->setLog("\n in " . $this->getObjectName() . " (DataObject)::Add()"); $reg = new Fields(); $reg->registryFromTable($this->getTable()); $fields = $this->getValues(); $this->setLogArray($fields); $table = $this->getTable(); $fieldlist = ""; $valuelist = ""; if ($GLOBALS['cfg_local_db'] == "mysql") { while (list($key, $fieldname) = each($tableFields)) { $this->setLog("\n " . $fieldname . "=" . $fields[$fieldname] . ";"); if (strlen($fields[$fieldname]) > 0) { if (get_magic_quotes_gpc()) { $fields[$fieldname] = stripslashes($fields[$fieldname]); } $fieldname = str_replace("`", "", $fieldname); $fieldlist .= "`{$fieldname}`, "; if ($fields[$fieldname] == "null") { $val = $fields[$fieldname]; } else { if (function_exists("mysql_real_escape_string")) { $val = "'" . mysql_real_escape_string($fields[$fieldname]) . "'"; } else { // } elseif (is_numeric($fields[$fieldname])) { // $val = $fields[$fieldname]; $val = "'".addslashes($fields[$fieldname])."'"; } } $valuelist .= "{$val}, "; } } $table = str_replace("`", "", $table); $fieldlist = ereg_replace(', $', '', $fieldlist); $valuelist = ereg_replace(', $', '', $valuelist); $query = "INSERT INTO `{$table}` ({$fieldlist}) VALUES ({$valuelist})"; } elseif ($GLOBALS['cfg_local_db'] == "pgsql") { while (list($key, $fieldname) = each($tableFields)) { if (strlen($fields[$fieldname]) > 0) { $this->setLog("\n For {$key} / {$fieldname} / "); $no_database_type = true; if (is_object($reg->fields[$fieldname])) { if (strlen($reg->fields[$fieldname]->getRdata("databasetype")) > 0) { $this->setLog(" type:" . $reg->fields[$fieldname]->getRdata("databasetype")); if ($reg->fields[$fieldname]->getRdata("databasetype") == "varchar" || $reg->fields[$fieldname]->getRdata("databasetype") == "text") { $fieldlist .= "\"{$fieldname}\", "; $valuelist .= "'" . $fields[$fieldname] . "', "; } elseif ($reg->fields[$fieldname]->getRdata("databasetype") == "time" || $reg->fields[$fieldname]->getRdata("databasetype") == "date") { if (!empty($fields[$fieldname])) { $fieldlist .= "\"{$fieldname}\", "; $valuelist .= "'" . $fields[$fieldname] . "', "; } } else { if (!empty($fields[$fieldname])) { $fieldlist .= "\"{$fieldname}\", "; $valuelist .= $fields[$fieldname] . ", "; } } $this->setLog(" add:\"{$fieldname}\" = " . $fields[$fieldname] . ", "); $no_database_type = false; } } if ($no_database_type) { $fieldlist .= "\"{$fieldname}\", "; if ($fields[$fieldname] == "null") { $val = $fields[$fieldname]; // } elseif (is_numeric($fields[$fieldname])) { // $val = $fields[$fieldname]; } else { $val = "'{$fields[$fieldname]}'"; } $valuelist .= "{$val}, "; $this->setLog(" add:\"{$fieldname}\" = {$val}, "); } } } $fieldlist = ereg_replace(', $', '', $fieldlist); $valuelist = ereg_replace(', $', '', $valuelist); $query = "INSERT INTO `{$table}` ({$fieldlist}) VALUES ({$valuelist})"; } else { while (list($key, $fieldname) = each($tableFields)) { if (strlen($fields[$fieldname]) > 0) { $fieldlist .= "`{$fieldname}`, "; if ($fields[$fieldname] == "null") { $val = $fields[$fieldname]; // } elseif (is_numeric($fields[$fieldname])) { // $val = $fields[$fieldname]; } else { $val = "'{$fields[$fieldname]}'"; } $valuelist .= "{$val}, "; } } $fieldlist = ereg_replace(', $', '', $fieldlist); $valuelist = ereg_replace(', $', '', $valuelist); $query = "INSERT INTO `{$table}` ({$fieldlist}) VALUES ({$valuelist})"; } $this->setLog("\n Running query:\n" . $query); $result = $this->query($query); if (is_object($mix)) { if (strtolower(get_class($mix)) == "eventcontroler") { $mix->insertid = $this->getInsertId($this->getTable(), $this->getPrimaryKey()); } } if ($this->auto_increment_key) { $this->setPrimaryKeyValue($this->getInsertId($this->getTable(), $this->getPrimaryKey())); } return $result; }