【发布时间】:2013-12-18 06:46:43
【问题描述】:
当我在我的数据库中插入用户名和电子邮件时,数据会重复。所以我有同一个用户的两个 id。当我为查询回显受影响的行数时,结果为 1。有人可以帮我解决这个问题吗?
<form name="field" method="post" action="test.php">
<label for="username">Username:</label><br>
<input name="username" id="username" type="text"/><br>
<label for="email">Email:</label><br>
<input name="email" id="email" type="text"/><br>
<input name="submit" type="submit" value="Register" id="submit" />
</form>
<?php
$mysqli = new mysqli('127.0.0.1', 'root', '', 'project');
$username = $_POST['username'];
$email = $_POST['email'];
$mysqli->query("INSERT INTO `project`.`registration` (`id`,`username`,`email`) VALUES ('id','$username','$email')");
$result = $mysqli->affected_rows;
echo $result;
?>
【问题讨论】:
-
id的值是多少,你在insert语句中使用过? -
Affected Rows 显示更改/添加了多少行,因此当您添加一个时,它显示 1
-
您是否双击了提交按钮?很多年前我就看到了这个问题,而这正是正在发生的事情。如果您在那里进行一些额外的检查以防止输入重复项,它可能会有所帮助。
-
您可以在插入之前先查询您的数据库,使用
mysqli_num_rows然后如果没有匹配,则继续插入。这是我使用的一种方法。 -
请切换到prepared statements以防止SQL injection。