|
@@ -385,7 +385,8 @@ function chado_insert_record($table, $values, $options = array()) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // if trying to insert a field that is the primary key, make sure it also is unique
|
|
|
+ // If trying to insert a field that is the primary key, make sure it also
|
|
|
+ // is unique.
|
|
|
if (array_key_exists('primary key', $table_desc)) {
|
|
|
$pkey = $table_desc['primary key'][0];
|
|
|
if (array_key_exists($pkey, $insert_values)) {
|
|
@@ -401,7 +402,7 @@ function chado_insert_record($table, $values, $options = array()) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // make sure required fields have a value
|
|
|
+ // Make sure required fields have a value.
|
|
|
if (!is_array($table_desc['fields'])) {
|
|
|
$table_desc['fields'] = array();
|
|
|
tripal_report_error('tripal_core', TRIPAL_WARNING,
|
|
@@ -411,8 +412,8 @@ function chado_insert_record($table, $values, $options = array()) {
|
|
|
);
|
|
|
}
|
|
|
foreach ($table_desc['fields'] as $field => $def) {
|
|
|
- // a field is considered missing if it cannot be NULL and there is no default
|
|
|
- // value for it or it is of type 'serial'
|
|
|
+ // A field is considered missing if it cannot be NULL and there is no
|
|
|
+ // default value for it or it is of type 'serial'.
|
|
|
if (array_key_exists('NOT NULL', $def) and
|
|
|
!array_key_exists($field, $insert_values) and
|
|
|
!array_key_exists('default', $def) and
|
|
@@ -425,7 +426,8 @@ function chado_insert_record($table, $values, $options = array()) {
|
|
|
return FALSE;
|
|
|
}
|
|
|
}
|
|
|
- } //end of validation
|
|
|
+ }
|
|
|
+ // End of validation.
|
|
|
|
|
|
// Now build the insert SQL statement
|
|
|
$ifields = array(); // contains the names of the fields
|
|
@@ -439,6 +441,14 @@ function chado_insert_record($table, $values, $options = array()) {
|
|
|
if (strcmp($value, '__NULL__')==0) {
|
|
|
$itypes[] = "NULL";
|
|
|
}
|
|
|
+ // Format the values of datetime fields for insertion.
|
|
|
+ if ($def['type'] == 'datetime') {
|
|
|
+ // Convert UNIX timestamps into the format expected by PostgreSQL.
|
|
|
+ if(is_numeric($value)) {
|
|
|
+ $ivalues[":$field"] == date("Ymd G:i:s", $value);
|
|
|
+ }
|
|
|
+ $itypes[] = ":$field";
|
|
|
+ }
|
|
|
else {
|
|
|
$itypes[] = ":$field";
|
|
|
}
|