选择在单个查询中插入mysql时抛出“重复条目”的行
如何检索插入期间抛出“重复条目”的行 “mtable”结构 我正在尝试在mtable中插入一行,我的要求是,如果电子邮件存在,则获取整行,否则它将向表中插入新值并返回insert success只需尝试此select*from mtable where email=>example@example.com'如果已存在大于0的电子邮件,请检查行数。如果不大于0,则不存在电子邮件选择在单个查询中插入mysql时抛出“重复条目”的行,mysql,mysqli,Mysql,Mysqli,如何检索插入期间抛出“重复条目”的行 “mtable”结构 我正在尝试在mtable中插入一行,我的要求是,如果电子邮件存在,则获取整行,否则它将向表中插入新值并返回insert success只需尝试此select*from mtable where email=>example@example.com'如果已存在大于0的电子邮件,请检查行数。如果不大于0,则不存在电子邮件 $stmt = $conn->prepare("SELECT * FROM mtable WHERE em
$stmt = $conn->prepare("SELECT * FROM mtable WHERE email=? ");
$stmt->bind_param('s',$email);
$stmt->execute();
$get_result =$stmt->get_result();
$row_count= $get_result->num_rows;
if($row_count>0)
{
//email already exists
$result = $get_result->fetch_assoc();
print_r($result);
}
else
{
$stmt1 = $conn->prepare("insert into mtable(email,name)values(?,?)");
$stmt1->bind_param('ss',$email,$name);
$stm1->execute();
$row_count1= $stmt1->affected_rows;
if($row_count1>0)
{
echo "inserted successfully";
}
$stmt1->close();
$conn->close();
}
如果代码的量是您关心的,那么考虑PDO,因为它将为两个查询减少比一个
中的MySql少的代码。$stmt = $conn->prepare("SELECT * FROM mtable WHERE email=? ");
$stmt->execute([$email]);
$row = $stmt->fetch();
if(!$row)
{
$conn->prepare("insert into mtable(email,name)values(?,?)")->execute([$email,$name]);
}
只需尝试此选择*从mtable where email='1example@example.com'如果已经存在大于0的电子邮件,请检查行数。如果不大于0的电子邮件不存在,那么简单地用此电子邮件启动select查询如何?@JYoThI在执行单个查询时可以使用它吗insertion@YourCommonSense我不知道已经插入的电子邮件地址,当我尝试插入一行时,如果电子邮件重复,它将返回该行。你明白我的意思吗?如果你现在尝试插入,你怎么会不知道?!感谢您的回复,我知道这在多个查询中是可能的,我想知道在一个查询中是否可能。我认为在一个查询中是不可能的。我不确定这是不是“CLIFFORDPY”
$stmt = $conn->prepare("SELECT * FROM mtable WHERE email=? ");
$stmt->execute([$email]);
$row = $stmt->fetch();
if(!$row)
{
$conn->prepare("insert into mtable(email,name)values(?,?)")->execute([$email,$name]);
}