2017-01-05 30 views
0

我基本上用php創建了這個文件,該文件從另一個文件中獲取值,以確定停放的汽車是否在時間內出來,如果不是,他將得到罰款。我能夠得到所有的變量和東西的工作,但當我嘗試輸入數據插入到我的數據庫在phpmyadmin,我得到一個錯誤。這裏是我的代碼:php/mysql:值是不是進入mysql數據庫?

<?php 
session_start(); 
$Entrydates=$_SESSION['tsmdate']; 
$Entrytimes=$_SESSION['tsmTime']; 
$Exitdates=$_SESSION['tsmexit']; 
$ExitTime=$_SESSION['tsmtimeend']; 
$username=$_SESSION['tsmUserName']; 
var_dump($_SESSION); 
     $Error=false; 
      date_default_timezone_set('Asia/Riyadh'); 
     $presentDate=date('Y-m-d'); 
      if(strtotime($Entrydates) == strtotime($presentDate)) 
      { 
       echo "same date"; 
      $presentTime= date('h:i A'); 
     var_dump($presentTime); 
     if(strtotime($presentTime) > strtotime($ExitTime)) 
      { 
       echo "pay up"; 
       $fine=100; 
       $Error=true; 
      } 
      else{ 
      echo "dont pay up"; 
      $fine=0; 
      $Error=true; 
      } 
     } 
     else 
     { 
      echo "different dates";                                                                                                                                                                                                                                               
     } 
      if($Error==true){ 
      require_once("connection.php"); 
      $my_query="INSERT INTO fine (`No`, `Username`,`Fine`) VALUES (NULL,'$username','$fine')"; 
      $result=mysqli_query($connection,$my_query); 
      if($result) 
      { 
       echo 'thank you'; 
      } 
      else 
      { 
       echo 'error'; 
      } 
      mysqli_close($connection); 
      } 
?> 
+0

你能指定錯誤嗎? –

+0

@BagusTesa它不告訴..它只是說錯誤 –

+2

**警告**:當使用'mysqli'你應該使用[參數化查詢](http://php.net/manual/en/mysqli.quickstart .prepared-statements.php)和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您創建了嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **絕不**將'$ _POST'或'$ _GET'數據直接放入查詢中,如果有人試圖利用您的錯誤,這會非常有害。 – tadman

回答

-2

,如果你發佈你的錯誤,你得到這將是很好的,但我覺得你的插入查詢它的語法。嘗試下面的代碼。

Btw。你可能想使用準備好的語句,看看他們。
http://www.w3schools.com/php/php_mysql_prepared_statements.asp

<?php 
    session_start(); 
    $Entrydates=$_SESSION['tsmdate']; 
    $Entrytimes=$_SESSION['tsmTime']; 
    $Exitdates=$_SESSION['tsmexit']; 
    $ExitTime=$_SESSION['tsmtimeend']; 
    $username=$_SESSION['tsmUserName']; 
    var_dump($_SESSION); 
      $Error=false; 
       date_default_timezone_set('Asia/Riyadh'); 
      $presentDate=date('Y-m-d'); 
       if(strtotime($Entrydates) == strtotime($presentDate)) 
       { 
        echo "same date"; 
       $presentTime= date('h:i A'); 
      var_dump($presentTime); 
      if(strtotime($presentTime) > strtotime($ExitTime)) 
       { 
        echo "pay up"; 
        $fine=100; 
        $Error=true; 
       } 
       else{ 
       echo "dont pay up"; 
       $fine=0; 
       $Error=true; 
       } 
      } 
      else 
      { 
       echo "different dates";                                                                                                                                                                                                                                               
      } 
       if($Error==true){ 
       require_once("connection.php"); 
       $my_query="INSERT INTO fine (No, Username, Fine) VALUES (NULL,'$username','$fine')"; 
       $result=mysqli_query($connection,$my_query); 
       if($result) 
       { 
        echo 'thank you'; 
       } 
       else 
       { 
        echo 'error'; 
       } 
       mysqli_close($connection); 
       } 
    ?> 
+0

已嘗試此操作無效:/ –

+1

對不起,請不要鏈接到w3schools。它通常是邪惡的過時。如果可能的話,鏈接到官方的PHP文檔,它的質量更高,並且在評論部分提供了社區提供的非常有用的示例來進一步解釋。 – tadman

+0

Downvoted因爲...? – Twinfriends

0

只是一個想法,但檢查以確保在你的數據庫表中的字段類型的東西,將接受你發送給他們的輸入。例如,如果對於No字段您有「allow Null = false」,那麼該插入將被拒絕。