Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/lib/zend/Zend/Amf/Parse/Resource/MysqliResult.php
Go to the documentation of this file.
00001 <?php
00032 class Zend_Amf_Parse_Resource_MysqliResult
00033 {
00034 
00038     static public $mysqli_type = array(
00039         0 => "MYSQLI_TYPE_DECIMAL",
00040         1 => "MYSQLI_TYPE_TINYINT",
00041         2 => "MYSQLI_TYPE_SMALLINT",
00042         3 => "MYSQLI_TYPE_INTEGER",
00043         4 => "MYSQLI_TYPE_FLOAT",
00044         5 => "MYSQLI_TYPE_DOUBLE",
00045         7 => "MYSQLI_TYPE_TIMESTAMP",
00046         8 => "MYSQLI_TYPE_BIGINT",
00047         9 => "MYSQLI_TYPE_MEDIUMINT",
00048         10 => "MYSQLI_TYPE_DATE",
00049         11 => "MYSQLI_TYPE_TIME",
00050         12 => "MYSQLI_TYPE_DATETIME",
00051         13 => "MYSQLI_TYPE_YEAR",
00052         14 => "MYSQLI_TYPE_DATE",
00053         16 => "MYSQLI_TYPE_BIT",
00054         246 => "MYSQLI_TYPE_DECIMAL",
00055         247 => "MYSQLI_TYPE_ENUM",
00056         248 => "MYSQLI_TYPE_SET",
00057         249 => "MYSQLI_TYPE_TINYBLOB",
00058         250 => "MYSQLI_TYPE_MEDIUMBLOB",
00059         251 => "MYSQLI_TYPE_LONGBLOB",
00060         252 => "MYSQLI_TYPE_BLOB",
00061         253 => "MYSQLI_TYPE_VARCHAR",
00062         254 => "MYSQLI_TYPE_CHAR",
00063         255 => "MYSQLI_TYPE_GEOMETRY",
00064     );
00065 
00066     // Build an associative array for a type look up
00067     static $mysqli_to_php = array(
00068         "MYSQLI_TYPE_DECIMAL"     => 'float',
00069         "MYSQLI_TYPE_NEWDECIMAL"  => 'float',
00070         "MYSQLI_TYPE_BIT"         => 'integer',
00071         "MYSQLI_TYPE_TINYINT"     => 'integer',
00072         "MYSQLI_TYPE_SMALLINT"    => 'integer',
00073         "MYSQLI_TYPE_MEDIUMINT"   => 'integer',
00074         "MYSQLI_TYPE_BIGINT"      => 'integer',
00075         "MYSQLI_TYPE_INTEGER"     => 'integer',
00076         "MYSQLI_TYPE_FLOAT"       => 'float',
00077         "MYSQLI_TYPE_DOUBLE"      => 'float',
00078         "MYSQLI_TYPE_NULL"        => 'null',
00079         "MYSQLI_TYPE_TIMESTAMP"   => 'string',
00080         "MYSQLI_TYPE_INT24"       => 'integer',
00081         "MYSQLI_TYPE_DATE"        => 'string',
00082         "MYSQLI_TYPE_TIME"        => 'string',
00083         "MYSQLI_TYPE_DATETIME"    => 'string',
00084         "MYSQLI_TYPE_YEAR"        => 'string',
00085         "MYSQLI_TYPE_NEWDATE"     => 'string',
00086         "MYSQLI_TYPE_ENUM"        => 'string',
00087         "MYSQLI_TYPE_SET"         => 'string',
00088         "MYSQLI_TYPE_TINYBLOB"    => 'object',
00089         "MYSQLI_TYPE_MEDIUMBLOB"  => 'object',
00090         "MYSQLI_TYPE_LONGBLOB"    => 'object',
00091         "MYSQLI_TYPE_BLOB"        => 'object',
00092         "MYSQLI_TYPE_CHAR"        => 'string',
00093         "MYSQLI_TYPE_VARCHAR"     => 'string',
00094         "MYSQLI_TYPE_GEOMETRY"    => 'object',
00095         "MYSQLI_TYPE_BIT"         => 'integer',
00096     );
00097 
00104     public function parse($resource) {
00105 
00106         $result = array();
00107         $fieldcnt = mysqli_num_fields($resource);
00108 
00109 
00110         $fields_transform = array();
00111 
00112         for($i=0;$i<$fieldcnt;$i++) {
00113             $finfo = mysqli_fetch_field_direct($resource, $i);
00114 
00115             if(isset(self::$mysqli_type[$finfo->type])) {
00116                 $fields_transform[$finfo->name] = self::$mysqli_to_php[self::$mysqli_type[$finfo->type]];
00117             }
00118         }
00119 
00120         while($row = mysqli_fetch_assoc($resource)) {
00121             foreach($fields_transform as $fieldname => $fieldtype) {
00122                settype($row[$fieldname], $fieldtype);
00123             }
00124             $result[] = $row;
00125         }
00126         return $result;
00127     }
00128 }
 All Data Structures Namespaces Files Functions Variables Enumerations