Im在验证数组中的值时检查数组中的值是否存在困难,并检查列中是否已存在值,如果没有重复值应该添加到数据库中,每个值都添加到相应的列中。检查数组中的值是否已经存在于数据库中+将数组添加到数据库中
我已经尝试了很多东西,最近我得到的是检查数组中的一个值是否已经存在于表的1列中。该脚本应检查1个表中5列中的重复项。
这是我媒体链接已经写了:
foreach ($_POST['email'] as $value){
if(! filter_var($value, FILTER_VALIDATE_EMAIL))
{
echo "</br>" . $value;
echo "</br> email invalid</br>";
}
else {
try{
$DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
//foreach($_POST['email'] as $value){
//echo "</br> $value </br>";
$query = "SELECT * FROM uitnodigen WHERE email = :email " ;
$stmt = $DB->prepare($query);
$stmt->bindParam(':email', $value);
$blaa = $stmt->rowCount();
$stmt->execute();
}
catch (PDOException $exception){
printf($exception->getMessage());
}
echo "</br> </br> $value </br></br>";
echo " $blaa";
if($stmt->rowCount() > 0)
{ echo "email exists";
}
else {
echo "</br>ok </br>";
}
//}
}}
,我觉得这是我应该怎么我的阵列添加到数据库:
$columns= implode(",", array_keys($_POST['email']));
$value= implode(",", array_values($_POST['email']));
echo "</br>$columns</br>";
echo "</br> $value </br>";
/*
foreach ($_POST['email'] as $value){*/
try{
$DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$query="INSERT INTO `uitnodigen` (`0` , `1` , `2 `, `3 `, `4`) VALUES ($value)";
$stmt = $DB->prepare($query);
$stmt->execute();}
catch(PDOException $e){
echo $e;
}
我是否应该提供更多信息,以澄清认为让我知道。提前致谢。
因此,在Ryan的回答帮助下,我设法将数组值添加到数据库中,我也设法验证数组中的每个值。如果数组中的某个值不是emailadres,则不会插入数据库,否则数组中的值将插入到数据库中。剩下的问题是我不知道如何检查表中的重复项。该表有5列,对于数组中的每个值,应检查表中是否存在重复。我将继续寻找解决方案,任何帮助或推动正确的方向非常感谢。我的代码: $ i = 0; $ j = count($ _ POST ['email']);
foreach ($_POST['email'] as $value){
$i++;
if(! filter_var($value, FILTER_VALIDATE_EMAIL))
{
echo "<br />email invalid<br />";
}
elseif($j==$i){
$emailQueryValues = array( ':email0' => $_POST['email']['0'],
':email1' => $_POST['email']['1'],
':email2' => $_POST['email']['2'],
':email3' => $_POST['email']['3'],
':email4' => $_POST['email']['4']);
echo "email klopt</br>";
$sql = 'insert into uitnodigen (`email0`, `email1`, `email2`, `email3`, `email4`) '
.' values (:email0, :email1, :email2, :email3, :email4)';
try{
$DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$query = $DB->prepare($sql);
$query->execute($emailQueryValues);
}
catch(PDOException $e){
echo $e->getMessage();
}
}
}
旁注:使用'
'而不是''很多人犯了这个错误。 –
是的,我看到了,谢谢! – Avuerro
我将添加代码来检查重复项目:-)我会发布另一条评论,当我添加并检查码。如果您发现它有用,请记得稍后再接受该答案。 –