コード例 #1
0
ファイル: VarBinary.php プロジェクト: adaoex/zf2-base
 /**
  * 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;
 }
コード例 #2
0
 /**
  * {@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;
     }
 }
コード例 #3
0
ファイル: sqlSchema.php プロジェクト: OptimalInternet/uCore
 public function SqlSrvMoveNext()
 {
     if (!isset($this->sqlsrvConnection)) {
         return false;
     }
     if (!isset($this->sqlsrvStatement)) {
         return false;
     }
     if (!sqlsrv_fetch($this->sqlsrvStatement)) {
         return false;
     }
     foreach ($this->columnBindings as $k => $col) {
         if ($col[1]) {
             $col[0] = sqlsrv_get_field($this->sqlsrvStatement, $k, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR));
         } else {
             $col[0] = sqlsrv_get_field($this->sqlsrvStatement, $k);
         }
     }
     return true;
 }
コード例 #4
0
function processReportUpload()
{
    // Build filepath
    $uploadfile = getcwd() . '/tmp/' . basename($_FILES['file']['name']);
    // If move from temp PHP directory == success, then true
    if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
        // Check to see if this is a duplicate report
        $isDuplicate = getReportData(NULL, gps('report_name'));
        if ($isDuplicate) {
            unlink($uploadfile);
            // Put result in a encoded JSON return
            $out = array("result" => 'duplicate', "report_name" => $isDuplicate['report_name'], "description" => $isDuplicate['short_description'], "report_id" => $out['report_id']);
            return json_encode($out);
        }
        //// Start building query
        // Get the file as binary
        $report_data = file_get_contents($uploadfile);
        // Report Name - Used to check for duplicates
        $report_name = gps('report_name');
        // Report Short Description
        $short_description = gps('short_description');
        // New Report?
        $reportStatus = gps('reportNew');
        // Author ID
        $aud = gps('report_author_id');
        $report_owner_author_id = $aud;
        $report_the_user_id = $aud;
        // Scope of Data
        $report_type_id = gps('report_type_id');
        // Scope of Data
        $report_scope_id = gps('report_scope_id');
        // Publication Number
        $pid = gps('report_number');
        // Filename
        $report_file_name = basename($_FILES['file']['name']);
        // Publication Date. Tenatively date of import.
        $report_publication_date = date("m-d-y");
        // xx-xx-xxxx
        // report filesize
        $report_file_size = filesize($uploadfile);
        // set report ID to null if it is a new report, otherwise, use $stored_report_id
        //$report_id = ($reportStatus == 0) ? NULL : $reportStatus;
        // Build Parameters
        $spParams = array(array(NULL, 1), array(NULL, 1), array($report_owner_author_id, 1), array($report_id, 1), array($report_name, 1), array($short_description, 1), array($pid, 1), array($report_publication_date, 1), array(1, 1), array($report_type_id, 1), array('http://', 1), array(1, 1), array($report_file_size, 1), array($report_file_name, 1), array($report_file_name, 1), array('pdf', 1), array('application/pdf', 1), array(1, 1), array($report_data, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY)), array(1, 1), array($report_scope_id, 1), array($report_the_user_id, 1));
        // call the procedure
        $result = callStoredProcedure(sqlsrvConnect(), 'Report_WyomingTobaccoEdit_SP', $spParams);
        // if JSON result TRUE
        if ($result['success']) {
            unlink($uploadfile);
            // Delete uploaded file as its now in DB
            // prepare JSON data pairs in to array
            $out = array("result" => 'success', "post_ID" => gps('post_ID'), "description" => gps('short_description'), "category" => gps('category'), "scope" => gps('sod'), "publication_number" => gps('pid'), "report_id" => $result['report_id'], "report_name" => $result['report_name']);
            // return array as json
            return json_encode($out);
        } else {
            $error = print_r($result, TRUE);
            // if anything else, return error
            $out = array("result" => "error" . $error);
            return json_encode($out);
        }
    }
}
コード例 #5
0
ファイル: SqlParameter.php プロジェクト: scotchphp/scotch
 protected function getSqlType()
 {
     $sqlType = null;
     $phpType = null;
     switch ($this->type) {
         case SqlParameterTypes::SqlInt:
             $sqlType = SQLSRV_SQLTYPE_INT;
             $phpType = SQLSRV_PHPTYPE_INT;
             break;
         case SqlParameterTypes::SqlBigInt:
             $sqlType = SQLSRV_SQLTYPE_BIGINT;
             $phpType = SQLSRV_PHPTYPE_INT;
             break;
         case SqlParameterTypes::SqlBit:
             $sqlType = SQLSRV_SQLTYPE_BIT;
             $phpType = SQLSRV_PHPTYPE_INT;
             break;
         case SqlParameterTypes::SqlFloat:
             $sqlType = SQLSRV_SQLTYPE_FLOAT;
             $phpType = SQLSRV_PHPTYPE_FLOAT;
             break;
         case SqlParameterTypes::SqlDecimal:
             $sqlType = SQLSRV_SQLTYPE_DECIMAL($this->precision, $this->scale);
             $phpType = SQLSRV_PHPTYPE_FLOAT;
             break;
         case SqlParameterTypes::SqlNVarChar:
             $sqlType = SQLSRV_SQLTYPE_NVARCHAR($this->size);
             $phpType = SQLSRV_PHPTYPE_STRING("UTF-8");
             break;
         case SqlParameterTypes::SqlNVarCharMax:
             $sqlType = SQLSRV_SQLTYPE_NVARCHAR('max');
             $phpType = SQLSRV_PHPTYPE_STRING("UTF-8");
             break;
         case SqlParameterTypes::SqlXml:
             $sqlType = SQLSRV_SQLTYPE_XML;
             $phpType = SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY);
             break;
         case SqlParameterTypes::SqlUniqueIdentifier:
             $sqlType = SQLSRV_SQLTYPE_UNIQUEIDENTIFIER;
             $phpType = SQLSRV_PHPTYPE_STRING("UTF-8");
             break;
         case SqlParameterTypes::SqlTinyInt:
             $sqlType = SQLSRV_SQLTYPE_TINYINT;
             $phpType = SQLSRV_PHPTYPE_INT;
             break;
         case SqlParameterTypes::SqlDate:
             $sqlType = SQLSRV_SQLTYPE_DATE;
             $phpType = SQLSRV_PHPTYPE_DATETIME;
             break;
         case SqlParameterTypes::SqlDateTime:
             $sqlType = SQLSRV_SQLTYPE_DATETIME;
             $phpType = SQLSRV_PHPTYPE_DATETIME;
             break;
         case SqlParameterTypes::SqlTime:
             $sqlType = SQLSRV_SQLTYPE_TIME;
             $phpType = SQLSRV_PHPTYPE_DATETIME;
             break;
         case SqlParameterTypes::SqlTimestamp:
             $sqlType = SQLSRV_SQLTYPE_TIMESTAMP;
             $phpType = SQLSRV_PHPTYPE_DATETIME;
             break;
     }
     return array($sqlType, $phpType);
 }
コード例 #6
0
 /**	
  * Fetch a result row as a numeric array
  * @param Mixed qHanle		The query handle	 
  * @return Array
  */
 public function fetch_numarray($qHanle)
 {
     $rowArray = array();
     $metaData = sqlsrv_field_metadata($qHanle);
     $fetchRes = sqlsrv_fetch($qHanle);
     if ($fetchRes === false) {
         triggerErrorMSSQL();
         return $rowArray;
     }
     if (is_null($fetchRes)) {
         return $rowArray;
     }
     $j = 0;
     foreach ($metaData as $fieldMetadata) {
         switch ($fieldMetadata['Type']) {
             //dateTime
             case 93:
                 $fieldVal = sqlsrv_get_field($qHanle, $j, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR));
                 $fieldVal = substr($fieldVal, 0, strrpos($fieldVal, "."));
                 break;
                 // ntext
             // ntext
             case -10:
                 $fieldVal = sqlsrv_get_field($qHanle, $j, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR));
                 $buffer = null;
                 while (!feof($fieldVal)) {
                     $buffer .= fgets($fieldVal, 4096);
                 }
                 fclose($fieldVal);
                 $fieldVal = $buffer;
                 break;
                 // image
             // image
             case -4:
                 $fieldVal = sqlsrv_get_field($qHanle, $j, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY));
                 $buffer = null;
                 while (!feof($fieldVal)) {
                     $buffer .= fgets($fieldVal, 4096);
                 }
                 fclose($fieldVal);
                 $fieldVal = $buffer;
                 break;
                 // text
             // text
             case -1:
                 $fieldVal = sqlsrv_get_field($qHanle, $j, SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR));
                 $buffer = null;
                 while (!feof($fieldVal)) {
                     $buffer .= fgets($fieldVal, 4096);
                 }
                 fclose($fieldVal);
                 $fieldVal = $buffer;
                 break;
                 // need to check, may be int data should be retrieved in another type
             // need to check, may be int data should be retrieved in another type
             default:
                 $fieldVal = sqlsrv_get_field($qHanle, $j);
         }
         $rowArray[] = $fieldVal;
         $j++;
     }
     return $rowArray;
 }
コード例 #7
0
ファイル: SqlsrvManager.php プロジェクト: klr2003/sourceread
 /**
  * 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;
 }