我有一个主键设置为自动增量的数据库。我无法从php中的post方法输入表单数据。
这是代码。我在用户数据库中有登录表。也是一个表单,其操作设置为低于代码。
<?php
if(isset($_POST['signup'])){
if (isset($_POST['Full-name']) && isset($_POST['psd']) && isset($_POST['email'])) {
$link2 = @mysqli_connect('localhost', 'root', '') or die("Oops! Can't connect");
@mysqli_select_db($link2, 'users') or die("Can't find Database");
$fullname = $_POST['Full-name'];
$email2 = $_POST['email'];
$newpassword = $_POST['psd'];
echo $fullname.$email2.$newpassword; //print sucessfully
$query2 = mysqli_query($link2, "INSERT INTO logins VALUES (NULL, $email2, $newpassword)");
if ($query2) {
echo "You have signed up successfully";
} else {
echo "Error: "; //query prints this statement
}
mysqli_close($link2);
}
}
?>
这是我的数据库结构Db structure
答案 0 :(得分:0)
尝试:
Insert into logins (Id,email,password) values (NULL, ....
假设您的姓名字段为&#34; Id&#34;,&#34; email&#34;,&#34; password&#34;等
答案 1 :(得分:0)
如果Null值是您的id(自动增量),请尝试此操作,然后您不想指定它,请将其留空。就像这样
$query2 = mysqli_query($link2, "INSERT INTO logins(username,password) VALUES ($email2, $newpassword)");
答案 2 :(得分:0)
您必须首先记住,您只提供 10个字符用户名, 8个字符用于密码。
即使它是一个varchar,它只允许10个Charterers用户名和8个字符用于密码及以上,如果你输入我很潮湿,确定它会显示你插入数据库的错误。
确保更新或更改您在数据库中为用户名和密码提供的值。
注意:如果用户为用户名提供了11个字符,为密码提供了8个字符,则很可能无法进入数据库。
交叉检查:尝试将echo放回语句并在此之后退出循环并直接将回显的查询放入MYSQL中,以便您可以非常轻松地找到错误并根据要求对其进行纠正你需要。
考虑到id
为自动增量,您的查询需要像这样改变。
$query2 = mysqli_query($link2, "INSERT INTO logins(`username,password`) VALUES ('".$email2."', '".$newpassword."')");
问题不在于人物数量。但它出现在查询中。
$query2 = mysqli_query($link2, "INSERT INTO logins(`username,password`) VALUES ('".$email2."', '".$newpassword."')");
没用。但用它代替,
$query = "INSERT INTO logins(username,password) VALUES ('".$email2."', '".$newpassword."')";
$query2 = mysqli_query($link2, $query);
为我工作!谢谢所有回复的人。