如果insert
已存在,我想显示错误消息。
我在数据库中使name
唯一,如果我输入相同的值,则不会插入。就像我想要的那样。这是我的代码:
$query = "INSERT INTO register(name) VALUES('$foo')";
mysql_query($query) or die('An Error occurred' . mysql_error());
现在我想回显一条消息,让用户知道他输入的值已经存在于数据库中,并且不会被插入。任何人吗?
答案 0 :(得分:0)
我认为你是从表格中收集$ foo?
我要做的是收集名称字段的表寄存器的sql查询然后当你收集在表单中输入的名称并且它发布时你可以使用sql语句对你已经收集的名字字段运行if条件如果有一个名字=他们在字段上输入的名称,他们可以收到一条消息并在sql注入到注册表之前退出。
答案 1 :(得分:0)
最简单的方法:
$res = mysql_query($query):
if ($res)
echo 'Insertion ok';
else
echo 'error: name already exists';
更好的方法:首先执行SELECT
查询以查看名称是否存在。
注意:您应该考虑从mysql_*
转移到mysqli_*
或PDO
答案 2 :(得分:0)
试试这个:
$query = "INSERT INTO register(name) VALUES('$name')";
$user = mysql_query($query):
if ($user)
echo 'User Register';
else
echo 'User Already Exist';
答案 3 :(得分:0)
根据Melon的评论,您应该使用mysqli
。
// Create your connection
$mysqli = new mysqli($host, $user, $pass, $dbname);
// Do your query
$mysqli->query("INSERT INTO register(name) VALUES('$foo')");
if($mysqli->affected_rows == 0) {
// Your chosen method of alerting the user goes here
}
答案 4 :(得分:-1)
\\this first part collects name information from your table.
$name="SELECT name FROM register";
$name_query = mysqli_query($db_conx, $name);
$numrows = mysqli_num_rows($name_query);
if($numrows < 1){
echo "cannot find user";
header ("location: index.php");
}
while ($row = mysqli_fetch_array($name_query, MYSQLI_ASSOC)){
$name = $row["name"];
}
\\ this part gets the name from your form
if (isset($_POST['class']) && ($_POST['class'] !='')){
$foo = $_POST['foo'];
\\this part checks to see if the 2 values are equal
if ($name == $foo){
echo "This name has already been used try again";
\\this part then adds the name if its not already in the database
}else{
$query = "INSERT INTO register(name) VALUES('$foo')";
mysql_query($query) or die('An Error occurred' . mysql_error());
}
}
//然后您需要做的就是创建表单以发布foo或名称,以便收集并传递给查询。