不确定我的错误是什么。在我的HTML中我有一个表单,当我点击提交它给我一个错误。我的连接正常,但由于某种原因,它实际上不会添加到数据库
<?php
if( isset( $_POST['submit'] ) ){
$username = $_POST['username'];
$password = $_POST['password'];
$connection = mysqli_connect( 'localhost', 'root', '', 'loginapp' );
if($connection){
echo "we are connected";
}
else{
die( "connection failed" );
}
$query = "INSERT INTO users(username,password) ";
$query.= "VALUES('$username','$password')";
$result = mysqli_query( $connection, $query );
if( !$result ){ // if not true, put query failed
die('Query Failed' .mysqli_error($connection));
}
}
?>
我想知道这里是否有问题,因为这段代码没有按计划运作
$query = "INSERT INTO users(username,password) ";
$query.= "VALUES('$username','$password')";
$result = mysqli_query( $connection, $query );
if( !$result ){ // if not true, put query failed
die( 'Query Failed' . mysqli_error( $connection ) );
}
}
答案 0 :(得分:2)
您正尝试在表格中插入重复的条目。可能是username
列。您可以解决此问题,但要么提供尚未在您的表中的username
值,要么从表中删除记录以便您可以重新插入它。如果您在问题中包含users
表的定义,我可以更具体,但这是您遇到的基本问题。
如果您的表格是使用数字类型id
列作为主键定义的,并且您没有在插入中指定新值,请执行以下操作:
insert into users (id, username, password) values (1, 'joeuser', 'password');
相反,做你在问题中所拥有的:
insert into users (username, password) values ('joeuser', 'password');
插入的记录将以null
或0
作为默认插入值。每次执行插入时,相同的值都将插入id
列,这将导致重复值错误。
要解决这个问题,将id
列定义为auto-increment
会告诉它,只要执行插入操作,并且没有为id
指定值,它就会使用下一个可用的整数作为默认值。
另一种方法是在insert语句的每次执行时为id
指定一个新值,如下所示:
insert into users (id, username, password) values (1, 'joeuser', 'password');
insert into users (id, username, password) values (2, 'daveuser', 'password');
insert into users (id, username, password) values (3, 'janeuser', 'password');
对于这样的表,使用自动增量是最好的方法。
答案 1 :(得分:0)
可替换地;为什么不将您的Query嵌套在条件语句中并从那里取出:如:
SELECT reg_nbr, hangar_nbr, lot_nbr
FROM lots
GROUP BY reg_nbr
HAVING MAX(hangar_nbr) = MIN(hangar_nbr) AND
MAX(lot_nbr) = MIN(lot_nbr)