您发布的代码有一些问题。
mehtod="post" 应该是 method="post" - 错字。
另外,请引用您的价值观
VALUES('$name','$dept')
请使用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()
旁注/建议:
如果您的整个代码都在同一个文件中(看起来是),请考虑使用名为属性的提交按钮将 PHP/SQL 包装在条件语句中,否则,您可能会得到一个 @ 987654335@警告。
为您的提交按钮命名<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());
}
?>