2016-08-29 11 views
0

こんにちは私は$ 0000-00-00としてそれを格納している私のPHPスクリプト、適切な日付を送信する$ .ajaxメソッドを介してフォームの値を送信しています。でも、私は私のSQLクエリをエコーし​​、PHPで私の管理をテストしたが、ここで0000-00-00php save 0000-00-00 ajaxが実際の日付を送信するとmysqlに日付

を格納することは、私のjqueryのは、SQL

// saving purpose 

    $(document).on('click','#btn-add',function(){ 
      $('#save-from').modal({show:true}); 
      $(document).on('click','#add-save',function(){ 
       var amc_id = $('#amc_id').val(); 
       var amc_type = $('#amc_type').val(); 
       var amc_start_date = $('#amc_start_date').val(); 
       var amc_end_date = $('#amc_end_date').val(); 
       var renual_date = $('#renual_date').val(); 
       var renual_ammount = $('#renual_ammount').val(); 
       var client_id = $('#client_id').val(); 
       var machine_id = $('#machine_id').val(); 
       if(amc_type === ""){ 
        $('#amc_type').focus(); 
        $('#amc_type').val('Enter enter amc tyoe'); 
        return; 
       } 
       $.ajax({ 

        url:"include/insert-amc-class.php", 
        type: "POST", 
        data:{'amc_id':amc_id, 'amc_type':amc_type, 'amc_start_date':amc_start_date, 'amc_end_date':amc_end_date, 'renual_date':renual_date,'renual_ammount':renual_ammount,'client_id':client_id,'machine_id':machine_id}, 
        dataType:"text", 

        success:function(html){ 
         $('#save-from').modal('hide'); 
         $('#modal-success').modal({show:true}); 
        } 
       }); 
      }); 
    });// end of save 

とここに私のPHPスクリプトが

<?php 
include_once "db_config.php"; 

class AMC{ 
    public $db; 
     public function __construct(){ 
      $this->db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE); 

      if(mysqli_connect_errno()) {   
       echo "Error: Could not connect to database.";   
      exit;  
      } 
     } 
    // to save amc details to database, to be called into amc-page.php  
     public function insertAmc($amc_id,$amc_type,$amc_start_date,$amc_end_date,$renual_date,$renual_ammount,$client_id,$machine_id){ 
      $sql = "INSERT INTO `amc`(`amc_id`, `amc_type`, `amc_start_date`, `amc_end_date`, `renual_date`, `renual_ammount`, `client_id`, `machine_id`) VALUES ('$amc_id','$amc_type','$amc_start_date','$amc_end_date','$renual_date','$renual_ammount','$client_id','$machine_id')"; 
      $result = mysqli_query($this->db,$sql); 
      echo $sql; 
      return $result; 
     }     
    } 

$amc = new AMC();  
$amc_id = $_POST['amc_id']; 

$amc_type = $_POST['amc_type'];  
$amc_start_date= $_POST['amc_start_date']; 

$amc_end_date = $_POST['amc_end_date'];  
$renual_date = $_POST['renual_date']; 
$renual_ammount = $_POST['renual_ammount']; 

$client_id = $_POST['client_id']; 
$machine_id = $_POST['machine_id'];  
$amc->insertAmc($amc_id,$amc_type,$amc_start_date,$amc_end_date,$renual_date,$renual_ammount,$client_id,$machine_id); 
?> 

これです私がそれをエコーするときの質問

INSERT INTO `amc`(`amc_id`, `amc_type`, `amc_start_date`, `amc_end_date`, `renual_date`, `renual_ammount`, `client_id`, `machine_id`) VALUES ('7','4c','31-08-2016','27-01-2017','','70000','1','1') 
+0

SQLインジェクションを防ぐために準備されたステートメントを使用してください。 – Jens

+0

今、私はそれについて助けが必要です。 –

+0

私のローカルサーバーで使用しているdb – Jens

答えて

0

あなたは、日付を挿入していることとそのフォーマット方法ちょうどこれのように私は考える:

INSERT INTO `amc`(`amc_id`, `amc_type`, `amc_start_date`, `amc_end_date`, `renual_date`, `renual_ammount`, `client_id`, `machine_id`) VALUES ('$amc_id','$amc_type',STR_TO_DATE('$amc_start_date', '%d-%m%y'),STR_TO_DATE('$amc_end_date', '%d-%m%y'),STR_TO_DATE('$amc_renual_date', '%d-%m%y'),'$renual_ammount','$client_id','$machine_id') 
+0

返信いただきありがとうございます。ご提供いただいたとおりにクエリを変更しましたが、日付は2020-08-30のみとなります。他の日付はデータベースに入力しない –

+0

日付を挿入すると、このSTR_TO_DATE( '$ amc_end_date'、 '%Y-%m-%d')のようなstr_to_dateを挿入しようとします。さらに、これはアポストロフィを削除しようとしますデータを挿入する - > INSERT INTO amc [...] – MaglioniLorenzo

関連する問題