如果名称在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);
}