Конвертировать Datetime в массив для PHP - PullRequest
0 голосов
/ 18 октября 2019

загруженный CSV-файл с датой в нем, не удалось. загруженный CSV-файл без даты, данные сохраняются в БД, но есть еще одна ошибка: - Нет доступных кортежей с этим индексом результата ....

Состояние SQL 22008: я думаю, потому что он не может прочитать мой формат даты. мой текущий формат в CSV выглядит следующим образом: - 04.02.2017 ..

есть ли способ конвертировать формат даты в массиве?

я пытался конвертировать с использованием "date (Формат d / m / Y, strtotime ($ dateRecorded)) "внутри массива, но он не работает.

include('../db_conn.php');
  $output = '';  
  $allowed_ext = array("csv");  
  $extension = end(explode(".", $_FILES["employee_file"]["name"]));  
  if(in_array($extension, $allowed_ext))  
  {  
       $file_data = fopen($_FILES["employee_file"]["tmp_name"], 'r');  
       fgetcsv($file_data);  
       while($row = fgetcsv($file_data))  
       {  
           $accnum = addslashes($row[0]);  
           $dedate = addslashes($row[1]); //deposit date  
           $transcode = addslashes($row[2]);  
           $amount = addslashes($row[3]);  
           $reffno = addslashes($row[4]);  
           $remarks = addslashes($row[5]);      
  $query = odbc_exec("INSERT INTO accdetails VALUES(   '0','','".$accnum."','".$dedate."','".$transcode."','".$amount."','".$reffno."','".$remarks."','','','','','')"); 
            $result = odbc_fetch_array($query); 

я получаю эту ошибку: -

Ошибка SQL: [Informix] [Драйвер Informix ODBC] [Informix] Нецифровый символ в дате или интервале. Состояние SQL 22008


Я проверил мой запрос на вставку, но я не вижу, чтобы был получен какой-то несколько результатов, это из-за моего цикла while?

ранее я использовал odbc_fetch_array ... но когда япогуглил, сказали заменить его на odbc_next_result. но сделал это, но случилось то же самое.

  $select2 = odbc_exec("SELECT * FROM accdetails ORDER BY spiid ASC");  
       $result2 = odbc_fetch_array($select2);  
       $output .= '  
            <table class="table table-bordered">  
                 <tr>  
                           <th>ID</th>  
                           <th>File Name</th>  
                           <th>Acc No</th>  
                           <th>Depo Date </th>
                           <th>Trans Code</th>  
                           <th>Amount</th>  
                           <th>Reff No</th>  
                           <th>Remarks</th> 
                 </tr>  
                    ';  
       while($row =  odbc_next_result($result2))  
       {  
            $output .= '  
                    <tr>  
                           <td>'.$row["spiid"].'</td>  
                           <td>'. $row["spifilename"].'</td>  
                           <td>'.$row["spiaccountno"].'</td>  
                           <td>'.$row["spidepositdate"].'</td>                                
                           <td>'.$row["spitranscode"].'</td>  
                           <td>'. $row["spiamount"].'</td>  
                           <td>'.$row["spireferenceno"].'</td>  
                           <td>'.$row["spiremarks"].'</td>
                 </tr>  
            ';  
       }  
       $output .= '</table>';  
       echo $output;  
  }  

1 Ответ

0 голосов
/ 18 октября 2019

Дата MySQL должна быть в формате ГГГГ-мм-дд.

, поэтому вам нужно изменить

$dedate = addslashes($row[1]);

на

$dedate = date( 'Y-m-d H:i:s', $row[1] );

Надеюсь, вы получите датув $row[1]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...