显示消息,让用户知道该值已存在

时间:2014-02-05 13:33:05

标签: php mysql

如果insert已存在,我想显示错误消息。 我在数据库中使name唯一,如果我输入相同的值,则不会插入。就像我想要的那样。这是我的代码:

$query = "INSERT INTO register(name) VALUES('$foo')";
mysql_query($query) or die('An Error occurred' . mysql_error());

现在我想回显一条消息,让用户知道他输入的值已经存在于数据库中,并且不会被插入。任何人吗?

5 个答案:

答案 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或名称,以便收集并传递给查询。