我在PhP中有一个注册表单,将各种条目提交到MySQL数据库中。
代码如下:
if($conn)
{
$sql = "INSERT INTO Participants
(ID,
title,
surname,
name,
organization1,
organization2,
address1,
address2,
country,
email,
phone,
type_reg,
abstract,
bm1,
bm2,
bm3,
bm4 )
VALUES
('$auth_id',
'$auth_title',
'$auth_sname',
'$auth_name',
'$auth_org_line1',
'$auth_org_line2',
'$auth_add_line1',
'$auth_add_line2',
'$auth_country',
'$auth_email',
'$auth_phonen',
'$reg_type',
'$new_file_name',
'$bm1',
'$bm2',
'$bm3',
'$bm4' )";
mysql_query($sql);
if( mysql_errno() !== 1062) {
print '<script type="text/javascript">';
print 'alert("Your pre-registration has been submitted successfully. You will receive a confirmation e-mail soon.")';
print '</script>';
print '<script type="text/javascript">';
print 'parent.location.href = "Success.html"';
print '</script>';
mysql_close($conn);
}
else
{
echo 'Data base error. Try later.';
}
因为我正在向我发送带有cc的确认电子邮件,我知道有人注册,当我检查数据库时,我发现其中一些没有被插入到数据库中。
我正在寻找的是只有在条目被插入MySQL表时才验证注册的方法。
有简单的方法吗?
我应该验证查询是否成功?怎么样?
我应该在桌子上查找ID并验证它是否存在?怎么样? (条目ID设置为唯一)
答案 0 :(得分:2)
是。 mysql_affected_rows()
将返回受查询影响的行数。如果为零,则表示未插入。如果&gt; = 1,那就是。
所以:
if ( mysql_affected_rows() >= 1 ){ /* inserted! now do something... */ }
如果您为行ID使用自动递增列,则也可以使用mysql_insert_id()
:
if ( mysql_insert_id() > 0 ) { /* inserted! now do something... */ }