插入值时,PDO不会抛出1062

时间:2014-08-22 01:20:59

标签: php mysql pdo phpmyadmin

这是我的表:

表名:标签

列名:标记

  • #classical
  • #dnb
  • #jazz
  • #音乐
  • #reggae
  • #rnb
  • #rock

这些是VARCHAR(255)类型,它们唯一。 当我尝试从phpmyadmin插入"#music"时,我得到了预期的结果:

#1062 - Duplicate entry '#music' for key 'tag'

然而,当我尝试通过php尝试这样做时,使用这段代码:

...

        try{
            $music = "#music";
            $sql = $dbh->prepare( "INSERT INTO tags (tag) VALUES (?)" );
            $sql->execute(array($music));
            $firephp->log("inserted");  

        }
        catch(PDOException $e)
        {
            if($e->getCode() == 1062)
                $firephp->log("1062");  
            else
                $firephp->log("else");
        }

firephp输出“插入”到控制台,它不会跳转到catch块。而且,桌子上没有插入任何东西。当我尝试添加非唯一值时,它会将其添加到表中。

我在这里缺少什么?为什么PDO不会抛出异常?

0 个答案:

没有答案