如果名称在php中的sql中插入超过2次,如何抛出错误


how to throw error if the name has been inserted more than 2 times in sql in php?

如果名称在php中的sql中插入超过5次,如何抛出错误??

$sql = mysql_query("INSERT INTO `transfer`(`t_id`, `agent_id`, `agent_name`, `date`, `name`, `phone`, `email`, `tname`, `tphone`, `temail`, `status`) VALUES (NULL,'$agent_id','$agent_name','$date','$name','$phone','$email','$tname','$tphone','$temail','$cmmnt','$status')");

试试这个

$sql = mysql_query("SELECT * FROM transfer HAVING COUNT(name) > 5");
if (mysql_num_rows($sql) != 0) {
    // There are more than 5 - print an error.
    echo 'Error - More than 5';
}else{
    // No Error - Insert
    $insert_query = "INSERT INTO `transfer`(`t_id`, `agent_id`, `agent_name`, `date`, `name`, `phone`, `email`, `tname`, `tphone`, `temail`, `status`) VALUES (NULL,'$agent_id','$agent_name','$date','$name','$phone','$email','$tname','$tphone','$temail','$cmmnt','$status')";
    $insert_result= $mysqli -> query($insert_query);
}

请不要在new中使用mysql_*函数密码它们不再被维护和弃用程序已经开始。请参阅红盒子?了解准备相反,语句,并使用PDO或MySQLi-这个文章将帮你决定哪一个。

请参阅上面的注释-我建议您使用mysqli_函数,因为mysql_函数已被弃用。

$mysqli = new mysqli('localhost', 'username', 'password', 'db');
$query  = "SELECT * FROM transfer HAVING COUNT(name) > 5";
$result = $mysqli -> query($query);
$num    = $result -> num_rows();
if($num != 0){
    // There are more than 5 - print an error.
    echo 'Error - More than 5';
}else{
    // No Error - Insert
    $insert_query = "INSERT INTO `transfer`(`t_id`, `agent_id`, `agent_name`, `date`, `name`, `phone`, `email`, `tname`, `tphone`, `temail`, `status`) VALUES (NULL,'$agent_id','$agent_name','$date','$name','$phone','$email','$tname','$tphone','$temail','$cmmnt','$status')";
    $insert_result= $mysqli -> query($insert_query);
}

关于使用mysqli*而不是mysql*neneneba API的重要性的评论是非常重要的,不应被忽略,但由于您已经开始使用mysql*,我将继续采用相同的路线。。。

我相信前面的答案(使用HAVING ...)并没有回答您的实际问题。请尝试下面的代码。

$sql = mysql_query("SELECT * FROM transfer WHERE name = '$name'");
if (mysql_num_rows($sql) >= 5) {
    echo "Error - Too many occurrences of $name";
} else {
    $insert_query = "INSERT INTO `transfer`(`t_id`, `agent_id`, `agent_name`, `date`, `name`, `phone`, `email`, `tname`, `tphone`, `temail`, `status`) VALUES (NULL,'$agent_id','$agent_name','$date','$name','$phone','$email','$tname','$tphone','$temail','$cmmnt','$status')";
    $insert_result= $mysqli -> query($insert_query);
}