有幾件事情錯了你發佈代碼。
mehtod="post"
它應該是method="post"
- 拼寫錯誤。
另外,引用你的價值觀
VALUES('$name','$dept')
DO使用prepared statements,或者PDO with prepared statements。
,因爲你現在的代碼是開放的SQL injection
,並添加error reporting
error_reporting(E_ALL);
ini_set('display_errors', 1);
您也應該檢查數據庫的錯誤。
$con = mysqli_connect("localhost","root","","info")
or die("Error " . mysqli_error($con));
以及or die(mysqli_error($con))
到mysqli_query()
旁註/建議:
如果整個代碼是相同的文件內(這似乎是),考慮使用名爲attribute的提交按鈕o在條件語句內包裝您的PHP/SQL此外,您可能會收到Undefined index...
警告。
命名您的提交按鈕<input type="submit" name="submit" value="Enter"/>
,做
if(isset($_POST['submit'])){ code to execute }
只是做if($_POST){
時錯誤報告設置可能會出現意想不到的結果。
重寫:一些使用mysqli_real_escape_string()
和stripslashes()
<html>
<form method="post" action="home.php">
<input type="text" name="txtName" />
<input type="text" name="txtDept" />
<input type="submit" name="submit" value="Enter"/>
</form>
</html>
<?php
$con = mysqli_connect("localhost","root","","info")
or die("Error " . mysqli_error($con));
if(isset($_POST['submit'])){
$name = stripslashes($_POST['txtName']);
$name = mysqli_real_escape_string($con,$_POST['txtName']);
$dept = stripslashes($_POST['txtDept']);
$dept = mysqli_real_escape_string($con,$_POST['txtDept']);
echo $name;
mysqli_query($con,"INSERT INTO `students` (`name`, `dept`) VALUES ('$name','$dept')")
or die(mysqli_error($con));
}
?>
按手動添加的安全性:http://php.net/manual/en/mysqli.connect-error.php,如果你想使用下面的方法,其中評論有被賦予這種效果:
<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');
if (!$link) {
die('Connect Error: ' . mysqli_connect_error());
}
?>
@VMai我不明白。編輯,好吧。 – 2014-09-20 15:06:57
@VMai好點。做了編輯,最後還是'VALUES ...',當我將它放到'mysqli_query'下時,看起來很奇怪。隨意編輯:) – 2014-09-20 15:10:23
爲了在這種情況下檢查連接錯誤,你可以使用'mysqli_connect_error()',因爲如果錯誤'$ con'將會是'FALSE'和'mysqli_error()'需要有效的鏈接標識符。 – Timur 2014-09-20 15:18:40