2015-11-21 236 views
0

我似乎在我的代碼中缺少一些限制post方法和數據未發送到我的數據庫的東西。數據庫連接測試是成功的,但是當我用輸入的數據提交表單時...我被重定向到new_employee.php,這意味着$ _POST ['submit']是假的,但是表單名稱='submit'被設置。php post方法失敗,沒有錯誤

這裏是PHP代碼

​​

而這裏的HTML表單

<form action="new_employee.php" method="POST" role="form" class="form-horizontal"> 
       <legend>Add new employee</legend> 

       <div class="col-md-10"> 
        First Name: <input type="text" name="first_name" class="form-control" placeholder="First name"> 
        Last Name: <input type="text" name="last_name" class="form-control" placeholder="Last name"> 
        Department: <input type="text" name="dept_id" class="form-control" placeholder="Department"> 
        Position: <input type="text" name="position" class="form-control" placeholder="Position"> 
        Hire Date: <input type="text" name="hire_date" class="form-control" placeholder="Hire date"> 
        Salary: <input type="text" name="salary" class="form-control" placeholder="Salary"> 
        Bonus: <input type="text" name="bonus" class="form-control" placeholder="Bonus"> 
        End Date: <input type="text" name="end_date" class="form-control" placeholder="Password"> 

        <br/> 
        <div class="row text-right"> 
         <input type="submit" name="submit" value="Save" class="btn btn-default" /> 
         &nbsp 
         <button type="button" class="btn btn-default" aria-label="Left Align"><a href="employee.php">Cancel</a></button> 
        </div> 
       </div> 
      </form> 

任何幫助我能在這裏將非常感激。

+0

開幕

標籤丟失,請包括這個。 – Maltronic

+0

根據你的代碼,當你的查詢失敗時,你沒有設置'$ _POST ['submit']'而不是'new_employee.php'。嘗試回顯您的'$ sql'並直接在MySQL中嘗試。我的猜測是'$ hire_date','$ salary','$ bonus'或'$ end_date'是字符串,需要引用。如果它們中的任何一個具有像'$','-','/'等字符,則它們被認爲是字符串。此外,你可能想看看 - [我怎樣才能防止在SQL注入SQL](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php ) – Sean

+0

@GoatMaster開幕表格標籤實際上不是搞亂,我已經更正了格式。 $ hire_date,$ salary,$ bonus和$ end_date都是可以爲空並且不是字符串。對於我的測試只有名字,姓氏,dept_id爲和位置提供與其他領域的空白, 一旦我得到我的代碼,我必上防止SQL注入 – Mena

回答

0

您的代碼在我看來是不正確的。 試試這個SQL變量,而不是你的:

$sql = "insert into staff (first_name, last_name, dept_id, position, hire_date, salary, bonus, end_date)"; 
$sql .= " values ('$first_name', '$last_name', $dept_id, '$position', $hire_date, $salary, $bonus, $end_date)"; 
+0

在雙引號查詢中使用大括號'{}'的OP沒有任何問題。閱讀關於[Complex(curly)語法的php手冊可能會對您有所幫助 - http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex ](http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex) – Sean

+0

@MahyarJafari我將您的代碼切換爲我的代碼,結果仍然相同。建議非常感謝 – Mena