示例#1
0
$lugar = $_POST['lugar_evento'];
$ciudad = intval($_POST['combo_CIUDAD']);
$to = strtotime($_POST['fecha_evento']);
$fecha = date('d/m/y', strtotime($_POST['fecha_evento']));
$hora = $_POST['hora_evento'];
$descripcion = $_POST['descripcion'];
$result = $_POST['taskOption'];
$result_explode = explode('|', $result);
// Insertar Datos
$query = OCI_Parse($c, "insert into EVENTO (EVENTO_ID,NOMBRE, LUGAR, DESCRIPCION, FECHA, HORA) values (incremento_evento.nextval, :para2, :para3, :para4, :para5, :para6)");
OCI_Bind_By_Name($query, ":para2", $titulo);
//Ligar los parámetros oracle con variables de PHP
OCI_Bind_By_Name($query, ":para3", $lugar);
OCI_Bind_By_Name($query, ":para4", $descripcion);
OCI_Bind_By_Name($query, ":para5", $fecha);
OCI_Bind_By_Name($query, ":para6", $hora);
//Ejecutar la sentencia para insertar
$r = OCI_Execute($query);
OCI_Free_Statement($query);
//Liberar sentencia
echo $selectOption;
echo "<br>";
echo $to;
echo gettype($to);
echo gettype($titulo);
echo "<br>";
echo gettype($lugar);
echo "<br>";
echo $ciudad;
echo gettype($ciudad);
echo "<br>";
 /**
  * Exécution d'une requête de base de données en utilisant
  *
  * @param	string 	$pQueryString	la requête à exécuter
  * @param 	string	$pParameters	les paramètres à donner à la requête
  * @param 	int		$pOffset		la ligne à partir de laquelle on veut récupérer les donénes
  * @param	int 	$pCount 		le nombre d'enregistrements que l'on souhaite récupérer à partir de l'offset
  * @return  array
  */
 private function _doQuery($pQueryString, $pParams = array(), $pOffset = null, $pCount = null)
 {
     $resultsOfQueryParsing = $this->_parseQuery($pQueryString, $pParams, $pOffset, $pCount);
     $pQueryString = $resultsOfQueryParsing['query'];
     //Préparation de la requête
     $stmt = ociparse($this->_ct, $pQueryString);
     if ($stmt === false) {
         throw new CopixDBException($pQueryString);
     }
     //On analyse les paramètres
     $arVariablesName = array();
     $arVariables = array();
     foreach ($pParams as $name => $param) {
         $variableName = substr($name, 1);
         if (!is_array($param)) {
             ${$variableName} = $param;
             if (!OCI_Bind_By_Name($stmt, $name, ${$variableName}, -1)) {
                 throw new CopixDBException("Bind ['{$name}'] - [" . ${$variableName} . "] taille [" . $arVariables[$variableName]['maxlength'] . "] type [" . $this->_convertQueryParam($arVariables[$variableName]['type']) . "]");
             }
             $arVariables[$variableName]['type'] = $this->_defaultBindType;
             $arVariables[$variableName]['value'] = $param;
             //               $arVariables[$variableName]['type'] = 'AUTO';
             //               $arVariables[$variableName]['value'] = $param;
         } else {
             if (!isset(${$variableName})) {
                 ${$variableName} = isset($param['value']) ? $param['value'] : null;
             }
             $arVariables[$variableName] = $param;
             if (!isset($arVariables[$variableName]['type'])) {
                 $arVariables[$variableName]['type'] = $this->_defaultBindType;
             }
             if (!isset($arVariables[$variableName]['maxlength'])) {
                 $arVariables[$variableName]['maxlength'] = $this->_defaultBindLength;
             }
             //        	   if (! isset ($arVariables[$variableName]['type'])){
             //        	   	$arVariables[$variableName]['type'] = CopixDBQueryParam::DB_AUTO;
             //       	   }
             //        	   if (! isset ($arVariables[$variableName]['maxlength'])){
             //        	   	$arVariables[$variableName]['maxlength'] = -1;
             //        	   }
             if ($arVariables[$variableName]['type'] === CopixDBQueryParam::DB_CURSOR) {
                 ${$variableName} = oci_new_cursor($this->_ct);
             }
             if (!OCI_Bind_By_Name($stmt, $name, ${$variableName}, $arVariables[$variableName]['maxlength'], $this->_convertQueryParam($arVariables[$variableName]['type']))) {
                 oci_free_statement($stmt);
                 throw new CopixDBException("Bind ['{$name}'] - [" . ${$variableName} . "] taille [" . $arVariables[$variableName]['maxlength'] . "] type [" . $this->_convertQueryParam($arVariables[$variableName]['type']) . "]");
             }
         }
     }
     //on exécute la requête
     if (!oci_execute($stmt, OCI_DEFAULT)) {
         $statementErrors = oci_error($stmt);
         oci_free_statement($stmt);
         throw new CopixDBException($pQueryString . ' - ' . var_export($statementErrors, true) . ' - ' . var_export($arVariables, true));
     }
     //Mise à jour des champs de type lob
     foreach ($arVariables as $name => $value) {
         //Si c'est un curseur
         if ($value['type'] === CopixDBQueryParam::DB_LOB || $value['type'] === CopixDBQueryParam::DB_BLOB || $value['type'] === CopixDBQueryParam::DB_CLOB) {
             ${$name}->save($value);
         }
     }
     //retourne les résultats.
     if ($resultsOfQueryParsing['isSelect']) {
         $results = array();
         while ($o = oci_fetch_array($stmt, OCI_ASSOC + OCI_RETURN_LOBS + OCI_RETURN_NULLS)) {
             $results[] = $this->_getCases($o, $pQueryString);
         }
     } else {
         $results = oci_num_rows($stmt);
     }
     //On commit si le mode est autocommit
     if ($this->_autoCommitMode == self::OCI_AUTO_COMMIT) {
         $this->commit();
     }
     //Libération des lobs
     foreach ($arVariables as $name => $value) {
         //Si c'est un curseur
         if ($value['type'] === CopixDBQueryParam::DB_LOB || $value['type'] === CopixDBQueryParam::DB_BLOB || $value['type'] === CopixDBQueryParam::DB_CLOB) {
             oci_free_descriptor(${$name});
         }
     }
     oci_free_statement($stmt);
     return $results;
 }