我使用一个简单的PHP脚本将数据插入数据库,但它失败了。如果没有显示单个错误,查询就不会成功,这就是我无法找出问题的原因。有些专家在这里帮助我。
echo $name." ".$email." ".$pass." ".$phone." ".$area." ".$specialization." ".$city." ".$latitude." ".$longitude;
回声的结果是正常的 - 没有任何空元素。
$query = mysqli_query($conn, "INSERT INTO users (name, email, pass, phone, area, specialization, hospital, city, latitude, longitude)
VALUES ('$name', '$email', '$pass', '$phone', '$area', '$specialization', '$hospital', '$city', '$latitude', '$longitude') ");
if ($query) {
echo "Status: Registeration Successful!";
// creating directory for user and storing dummy profile picture
//mkdir('../profiles/'.$email_trim, 0777);
//$result_copy = copy("img/dp.jpg.jpg", "../profiles/".$email_trim."/dp.jpg.jpg");
} else {
echo "Status: Err";
}
始终打印“状态:错误”。我不知道为什么。
P.S我已经仔细检查过数据库,字段标签很好。
更新1:
我添加了
die(mysqli_error($conn));
声明并且它说“关键主要的重复输入'0'。
问题和解决方案:
问题是我有一个'id'字段,它是表的主键但是没有设置为AUTO_INCREMENT。因此,每当我尝试插入新记录时,我实际上是插入具有重复PK的条目,这是问题。我将其更改为AUTO_INCREMENT,它解决了问题。
答案 0 :(得分:3)
您似乎尝试插入PK = 0的新元素,但是已经有了这个键的记录! 你桌子的主键是什么?您是否使用了插入语句中未显示的“id”字段?这个字段是AUTO_INCREMENT吗?
答案 1 :(得分:2)
查看“用户”表的结构会很有帮助。
狂野猜测:看起来你可能已经定义了一个“id”列(或其他任何名称),它是主键,默认值为“0”,但它不是自动增量。这样你可以插入1行,它将获得“0”作为“id”列的值,但你不能插入另一行,因为它也会尝试使用默认值“0”,这不可能发生,因为主键必须是唯一的
如果是这种情况,请修改用户表并确保主键列也是“自动增量”。
答案 2 :(得分:0)
<?php
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>
答案 3 :(得分:0)
请在其他:
中添加以下提及的代码,以检查错误echo mysqli_errno($conn) . '----' . mysqli_error($conn);
答案 4 :(得分:-1)
$query = mysqli_query($conn, "INSERT INTO `users` (`name`, `email`, `pass`, `phone`, `area`, `specialization`, `hospital`, `city`, `latitude`, `longitude`)
VALUES ('$name', '$email', '$pass', '$phone', '$area', '$specialization', '$hospital', '$city', '$latitude', '$longitude') ");
使用`勾选可能是因为您的字段中有一些保留字。
答案 5 :(得分:-1)
$query = mysqli_query($conn, "INSERT INTO `users` (`name`, `email`, `pass`, `phone`, `area`, `specialization`, `hospital`, `city`, `latitude`, `longitude`)
VALUES ('$name', '$email', '$pass', '$phone', '$area', '$specialization', '$hospital', '$city', '$latitude', '$longitude') ") or die(mysqli_error());
答案 6 :(得分:-2)
我认为你的括号加倍,不要在查询中加入$ conn ..
$query = "INSERT INTO users (name, email, pass, phone, area, specialization, hospital, city, latitude, longitude)
VALUES ('$name', '$email', '$pass', '$phone', '$area', '$specialization', '$hospital', '$city', '$latitude', '$longitude')";
mysqli_query($query, $conn);
像这样的东西。我希望这有帮助