如何使用mysqli_sqlstate()显示触发器错误消息?

时间:2019-07-02 15:02:04

标签: php mysqli database-trigger error-messaging

在某些情况下,我具有“插入前”触发器,如果​​条件:false,则发生错误。我应该在HTML网页的数据库触发器中显示该错误消息,以通知用户!

CREATE TRIGGER check_trigger BEFORE INSERT ON your_table
FOR EACH ROW
    BEGIN
        IF (new.ref_owner = new.partnerCodeOwner1)
        THEN
            SIGNAL SQLSTATE '45000' 
            SET MESSAGE_TEXT = 'You can not use your ID. Insertion canceled';
        END IF;
     END

此处插入代码!我使用了mysql_sqlstate() returns the SQLSTATE value 但没有捕获错误消息

Here the documtation || Here the example use

$user_check_query = "SELECT partnerCodeOwner1 
                    FROM refer 
                    where randomfield='$partnerCode'";
$result = mysqli_query($db, $user_check_query);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

if(empty($row['partnerCodeOwner1'])) {
    $query = "update refer 
                set partnerCodeOwner1= '" . $_SESSION['username'] 
                . "'  where randomfield='$partnerCode'";

    printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($query));
}else {
    $query = " update refer 
            set partnerCode= '" . $_SESSION['username'] . "'  
            where randomfield='$partnerCode'  ";    

    //printf("Error message: %s\n", $mysqli->error);

}
mysqli_query($db, $query);

在条件为false的情况下,我应该从触发器获取错误消息!

0 个答案:

没有答案