使用mysql在数据库中没有插入数据
我试图使用表单将数据输入到我的数据库中,但它根本不工作。所以我在表单中使用POST方法,我希望你们能够帮助我,并且这样我也可以学习,这样不会再发生!使用mysql在数据库中没有插入数据
我connect.php
<?php
$con = mysqli_connect("localhost","root","hunzai112");
mysqli_select_db($con,"raty");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
我register.php
<?php
include 'assets/connect.php';
if(isset($_POST['submit'])){
if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POSt['email']) && isset($_POST['password'])){
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$password = $_POST['password'];
$send = mysqli_query("INSERT INTO users (firstname,lastname,email,password) VALUES ('$fname','$lname','$email','$password')");
if($send){
echo "DONE";
}
else {
echo "error";
}
}
}
?>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lobster+Two" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="style/index.min.css">
<title>Register - RatyPeople</title>
</head>
<body>
<div class="regcontainer">
<h1>RatyPeople</h1>
<form action="" method="POST">
<input type="text" name="fname" placeholder="First Name"/><br>
<input type="text" name="lname" placeholder="Last Name"/><br>
<input type="email" name="email" placeholder="Email Address"/><br>
<input type="password" name="password" placeholder="Password"/><br>
<input type="submit" name="submit" value="Register">
</form>
</div>
</body>
</html>
`
提供链路标识符是$con
你的情况
$send = mysqli_query($con, "INSERT INTO users ...
获取更详细from doc:http://php.net/manual/en/mysqli.query.php
<?php
include 'assets/connect.php';
if(isset($_POST['submit'])){
if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POSt['email']) && isset($_POST['password'])){
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$password = $_POST['password'];
$query = "INSERT INTO users (firstname,lastname,email,password) VALUES ('$fname','$lname','$email','$password')"
$send = mysqli_query($con,$query);
if($send){
echo "DONE";
}
else {
echo "error";
}
}
}
?>
您没有为查询功能提供数据库连接。
我did not understand –
Didnt工作以及 –
真的,添加此代码if($ send){ ec “完成”; } else { mysqli_error($ con); }至少向我们展示一些错误消息,这将有所帮助 –
您的问题是在第4行:
if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POSt['email']) && isset($_POST['password'])){
替换$ _ POST [ '电子邮件']与$ _POST [ '电子邮件']
如果问题存在,你可以替换:
$send = mysqli_query("INSERT INTO users (firstname,lastname,email,password) VALUES ('$fname','$lname','$email','$password')");
有:
并告诉我什么错误返回。
1)除仙人的反应,试试这个:
- 变化
isset($_POSt['email'])
到isset($_POST['email'])
,注意到 “T” 在那里。 - 变化
<form action="" method="POST">
到<form action="register.php" method="POST">
2)同样是为了安全,插入到你的数据库,防止SQL注入的原因之前逃脱你的POST变量:
-
变化
$fname = $_POST['fname']; $lname = $_POST['lname']; $email = $_POST['email']; $password = $_POST['password'];`
至
$fname = mysqli_real_escape_string($con, $_POST['fname']); $lname = mysqli_real_escape_string($con, $_POST['lname']); $email = mysqli_real_escape_string($con, $_POST['email']); $password = mysqli_real_escape_string($con, $_POST['password']);
3)此外,这将帮助调试,
-
变化
if($send){ echo "DONE"; } else { echo "error"; }
到
if($send){ echo "DONE"; } else { echo "Error: ". mysqli_error($con); }
为了让你看看有没有是个MySQL错误。
-
包括在register.php顶部下面的代码,
<?php
后,这将有助于调试问题(注释掉当您完成):error_reporting(E_ALL); ini_set('display_errors', '1');
4)完整的答案,仙人说:
提供链路标识符这是你的情况$ CON $发送= mysqli_query($ CON,“INSERT INTO使用rs ... 从doc获取更多详细信息:http://php.net/manual/en/mysqli.query.php
这样做的一方面,'$ _POSt'不正确。这是一个超全球性的,它必须是大写字母。错误报告会引发你一些关于它的事情。 –