$field = $this->fields[$this->offset++];
$return = new \stdClass;
$return->name = $field["Name"];
- $return->orgname = $field["Name"];
$return->type = ($field["Type"] == 1 ? 254 : 0);
+ $return->charsetnr = 0;
return $return;
}
}
/** Fetch next field
- * @return object properties: name, type, orgtable, orgname, charsetnr
+ * @return object properties: name, type (9 for number, 254 for char), charsetnr (63 for binary); optionally: table, orgtable, orgname
*/
function fetch_field() {
$return = mysql_fetch_field($this->result, $this->offset++); // offset required under certain conditions
$return->orgtable = $return->table;
- $return->orgname = $return->name;
$return->charsetnr = ($return->blob ? 63 : 0);
return $return;
}
$column = $this->offset++;
$return = new \stdClass;
$return->name = oci_field_name($this->result, $column);
- $return->orgname = $return->name;
- $return->type = oci_field_type($this->result, $column);
+ $return->type = oci_field_type($this->result, $column); //! map to MySQL numbers
$return->charsetnr = (preg_match("~raw|blob|bfile~", $return->type) ? 63 : 0); // 63 - binary
return $return;
}
function fetch_field() {
$column = $this->offset++;
$return = new \stdClass;
- if (function_exists('pg_field_table')) {
- $return->orgtable = pg_field_table($this->result, $column);
- }
+ $return->orgtable = pg_field_table($this->result, $column);
$return->name = pg_field_name($this->result, $column);
- $return->orgname = $return->name;
- $return->type = pg_field_type($this->result, $column);
+ $return->type = pg_field_type($this->result, $column); //! map to MySQL numbers
$return->charsetnr = ($return->type == "bytea" ? 63 : 0); // 63 - binary
return $return;
}
function fetch_field() {
$column = $this->offset++;
- $type = $this->result->columnType($column);
+ $type = $this->result->columnType($column); //! map to MySQL numbers
return (object) array(
"name" => $this->result->columnName($column),
"type" => $type,
for ($j=0; $j < count($row); $j++) {
$field = $result->fetch_field();
$name = $field->name;
- $orgtable = $field->orgtable;
- $orgname = $field->orgname;
- $return[$field->table] = $orgtable;
+ $orgtable = (isset($field->orgtable) ? $field->orgtable : "");
+ $orgname = (isset($field->orgname) ? $field->orgname : $name);
if ($orgtables && JUSH == "sql") { // MySQL EXPLAIN
$links[$j] = ($name == "table" ? "table=" : ($name == "possible_keys" ? "indexes=" : null));
} elseif ($orgtable != "") {
+ if (isset($field->table)) {
+ $return[$field->table] = $orgtable;
+ }
if (!isset($indexes[$orgtable])) {
// find primary key in each table
$indexes[$orgtable] = array();
function fetch_field() {
$row = (object) $this->getColumnMeta($this->_offset++);
- $row->orgtable = $row->table;
- $row->orgname = $row->name;
+ $row->type = $row->pdo_type; //! map to MySQL numbers
$row->charsetnr = (in_array("blob", (array) $row->flags) ? 63 : 0);
return $row;
}
$return = new \stdClass;
if ($column < count($this->columns)) {
$return->name = $this->meta[$column]['name'];
- $return->orgname = $return->name;
- $return->type = $this->meta[$column]['type'];
+ $return->type = $this->meta[$column]['type']; //! map to MySQL numbers
+ $return->charsetnr = 0;
}
return $return;
}
$field = ibase_field_info($this->result, $this->offset++);
return (object) array(
'name' => $field['name'],
- 'orgname' => $field['name'],
- 'type' => $field['type'],
- 'charsetnr' => $field['length'],
+ 'type' => $field['type'], //! map to MySQL numbers
+ 'charsetnr' => 0,
);
}
function fetch_field() {
$field = current($this->fields);
next($this->fields);
- return ($field != '' ? (object) array('name' => $field) : false);
+ return ($field != '' ? (object) array('name' => $field, 'type' => 0, 'charsetnr' => 0) : false);
}
}
}
$name = $keys[$this->offset++];
return (object) array(
'name' => $name,
+ 'type' => 0,
'charsetnr' => $this->charset[$name],
);
}
function fetch_field() {
$keys = array_keys($this->rows[0]);
- return (object) array('name' => $keys[$this->offset++]);
+ return (object) array('name' => $keys[$this->offset++], 'type' => 0, 'charsetnr' => 0);
}
}
}