Exemplo n.º 1
0
 /**
  * Method send DataBase data
  * @param Binary $value
  * @param AbstractPlatform $platform
  * @return Database return communication
  */
 public function convertToDatabaseValue($value, AbstractPlatform $platform)
 {
     // This is executed when the value is written to the database. Make your conversions here, optionally using the $platform.
     if ($value === null) {
         $params = null;
     } else {
         $fileStream = fopen($value, "r");
         $params = array($fileStream, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY), SQLSRV_SQLTYPE_VARBINARY('max'));
     }
     return $params;
 }
 /**
  * {@inheritdoc}
  */
 public function bindParam($column, &$variable, $type = null, $length = null)
 {
     if (!is_numeric($column)) {
         throw new SQLSrvException("sqlsrv does not support named parameters to queries, use question mark (?) placeholders instead.");
     }
     if ($type === \PDO::PARAM_LOB) {
         $this->params[$column - 1] = array($variable, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY), SQLSRV_SQLTYPE_VARBINARY('max'));
     } else {
         $this->params[$column - 1] = $variable;
     }
 }
Exemplo n.º 3
0
 /**
  * Low level handling getting a row from a result set; automatically
  * makes all fetched values strings, just like the other PHP db functions.
  * We have to do this since the sqlsrv extension returns row values in thier
  * native types, which causes problems with how we handle things.
  *
  * @param  resource $result
  * @return array
  */
 private function _fetchRowAssoc($result)
 {
     if (!is_resource($result)) {
         return false;
     }
     $row = array();
     $fieldnames = $this->getFieldsArray($result);
     $fieldMetaData = sqlsrv_field_metadata($result);
     if (sqlsrv_fetch($result)) {
         for ($i = 0; $i < sqlsrv_num_fields($result); $i++) {
             if ($fieldMetaData[$i]['Type'] == -9 || $fieldMetaData[$i]['Type'] >= SQLSRV_SQLTYPE_NVARCHAR(1) && $fieldMetaData[$i]['Type'] <= SQLSRV_SQLTYPE_NVARCHAR(8000) || $fieldMetaData[$i]['Type'] >= SQLSRV_SQLTYPE_NCHAR(1) && $fieldMetaData[$i]['Type'] <= SQLSRV_SQLTYPE_NCHAR(8000) || $fieldMetaData[$i]['Type'] == SQLSRV_SQLTYPE_NVARCHAR('max') || $fieldMetaData[$i]['Type'] == SQLSRV_SQLTYPE_NCHAR('max')) {
                 $row[$fieldnames[$i]] = iconv("utf-16le", "utf-8", sqlsrv_get_field($result, $i, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_BINARY)));
             } elseif ($fieldMetaData[$i]['Type'] == -3 || $fieldMetaData[$i]['Type'] == SQLSRV_SQLTYPE_IMAGE || $fieldMetaData[$i]['Type'] == SQLSRV_SQLTYPE_VARBINARY('max') || $fieldMetaData[$i]['Type'] >= SQLSRV_SQLTYPE_VARBINARY(1) && $fieldMetaData[$i]['Type'] <= SQLSRV_SQLTYPE_VARBINARY(8000)) {
                 $resource = sqlsrv_get_field($result, $i, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY));
                 ob_start();
                 fpassthru($resource);
                 $row[$i] = ob_get_contents();
                 ob_end_clean();
             } else {
                 $row[$fieldnames[$i]] = sqlsrv_get_field($result, $i, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR));
             }
         }
     } else {
         sqlsrv_free_stmt($result);
     }
     return $row;
 }