确认它是否已插入MySql数据库

时间:2013-05-28 23:57:45

标签: php mysql forms

我在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设置为唯一)

1 个答案:

答案 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... */ }