阻止MySQL中的多个数据项
所以这里是交易。 我环顾四周,其他所有技术都涉及到刷新浏览器,以及防止php页面重新提交发布数据的方法。 我对此很陌生(显然:p)但无论如何,我认为我的问题很简单。 我只想要一个方法,可能是一个if语句来检查发布数据条目,并且如果我的表中已经存在匹配,那么不要执行查询。 我并不担心查询桌子的所有结果,因为我只怀疑这张桌子有50-60个参赛作品。
这里是处理表单提交的php页面:
$firstName = $_POST['firstName']; $lastName = $_POST['lastName']; $email = $_POST['email']; $city = $_POST['city']; $state = $_POST['state']; $submitDate = date("Y-m-d"); mysql_connect ("localhost", "abc", "123") or die ('Error: ' . mysql_error()); mysql_select_db ("members"); $query = "INSERT INTO persons (ID, firstName, lastName, email, city, state, submitDate)VALUES ( 'NULL', '".$firstName."', '".$lastName."', '".$email."', '".$city."', '".$state."', '".$submitDate."' )"; mysql_query($query) or die ('Error Updating database'); echo "Database Updated With: " .$firstName ." " .$lastName ." " .$email ." " .$city ." " .$state; mysql_close($con);
对不起,似乎无法让我的PHP格式与这些代码大括号正确。 无论如何。 只是为了重新迭代,寻找一种可能基于名字和姓氏的方式。 如果这些数据已经存在,则不允许提交数据。 我已经尝试了一些,如果然后声明,但我不认为我得到的概念比较结果与我的查询。 我希望这一切都有道理!
您可以使用INSERT IGNORE INTO ...
并让MySQL处理它。
$query = "INSERT IGNORE INTO persons (ID, firstName, lastName, email, city, state, submitDate) VALUES (
'NULL',
'".$firstName."',
'".$lastName."',
'".$email."',
'".$city."',
'".$state."',
'".$submitDate."'
)";
我会建议在你想要唯一的列上添加一个UNIQUE索引。
我也有这个问题。 基本上我所做的是在插入之前,对符合条件的条件做一个选择并检查它是否返回; 如果不是,我们可以进入。
$query = "SELECT COUNT(id) AS mycount FROM persons WHERE firstName = '".$firstnName."' AND lastName = '".$lastName."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if($row['mycount'] == 0) {
//Do insert
}
链接地址: http://www.djcxy.com/p/93673.html