_name = $name; } /** * Convert binary data into the database format. * * Binary data is not altered before being inserted into the database. * As PDO will handle reading file handles. * * @param string|resource $value The value to convert. * @param \Cake\Database\Driver $driver The driver instance to convert with. * @return string|resource */ public function toDatabase($value, Driver $driver) { return $value; } /** * Convert binary into resource handles * * @param resource|string|null $value The value to convert. * @param \Cake\Database\Driver $driver The driver instance to convert with. * @return resource|null * @throws \Cake\Core\Exception\Exception */ public function toPHP($value, Driver $driver) { if ($value === null) { return null; } if ( is_string($value) && $driver instanceof Sqlserver && version_compare(PHP_VERSION, '7.0', '<') ) { $value = pack('H*', $value); } if (is_string($value)) { return fopen('data:text/plain;base64,' . base64_encode($value), 'rb'); } if (is_resource($value)) { return $value; } throw new Exception(sprintf('Unable to convert %s into binary.', gettype($value))); } /** * Get the correct PDO binding type for Binary data. * * @param mixed $value The value being bound. * @param \Cake\Database\Driver $driver The driver. * @return int */ public function toStatement($value, Driver $driver) { return PDO::PARAM_LOB; } /** * Marshals flat data into PHP objects. * * Most useful for converting request data into PHP objects * that make sense for the rest of the ORM/Database layers. * * @param mixed $value The value to convert. * @return mixed Converted value. */ public function marshal($value) { return $value; } }