2014-06-24 98 views
0

我想能夠將孩子添加到數據庫,這是連接到他們的父母(誰有一個成員ID MID)。我相信錯誤在於日期格式(至少我相信),我也嘗試使用strtotime($ dob),但是這並沒有改變任何東西。PHP插入日期到MySQL數據庫與mysqli

$name = htmlspecialchars($_GET['Name']); 
    $dob = $_GET['DOB']; 
    $newDOB = date("Y-m-d", $dob); 
    $mid = $_GET['mid']; 

    if(isset($_GET['Name'], $_GET['DOB'], $_GET['mid'])) 
     $alert = true; 
    if(!empty($name) && !empty($newDOB) && !empty($mid)) 
     add_family_member($mid, $newDOB, $name); 

,其將所述部件的功能:

function add_family_member($mid, $dob, $name) 
{ 
    global $con; 
    $sql = "INSERT INTO Children(MID, DOB, Name) VALUES(?, ?, ?)"; 
    $stmt = $con->prepare($sql); 
    if($stmt) 
    { 
     $b = $stmt->bind_param("iss", $mid, $dob, $name); 
     if($b) 
     { 
      $e = $stmt->execute(); 
      if($e) 
       return true; 
     } 
    } 

    return false; 
} 

而且如果需要的話,這是用於輸入數據的形式如下:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> 
    <input type="hidden" name="cmd" value="addmembers"> 
    <table class="infotable"> 
     <tr> 
     <td>Navn: </td> 
     <td><input type="text" name="Name" required> </td> 
     </tr> 
     <tr> 
     <td>Fødselsdato: </td> 
     <td><input type="date" name="DOB" required></td> 
     </tr> 
     <tr> 
     <td></td><td><input type="submit" value="Tilføj"><input type="reset" value="Reset"></td> 
     </tr> 
    </table> 
</form> 
+0

將錯誤報告發送到您的文件頂部 'error_reporting(E_ALL); ini_set('display_errors',1);' –

+0

你能分享你得到的錯誤嗎?你的代碼有點混亂 –

+0

我沒有得到一個實際的錯誤,這就是爲什麼我從本質上認爲錯誤來自mysql插入日期。 – Cralle

回答

0

date()函數工作在一個時間()值而不是字符串,因此您需要先將輸入的日期轉換爲時間值,然後再使用date()

$newDOB = date("Y-m-d", strtotime($dob)); 
+0

我以前試過,但這不是問題。仍然不起作用。 – Cralle

+1

我不相信你可以通過$ _GET來傳遞任何值,它將與'date()'函數一起工作。請在完成轉換後執行'var_dump($ dob,$ newDOB)',並告訴我們結果是什麼! – RiggsFolly