-->

How to use mysqli_sqlstate() to display trigger er

2020-06-27 06:49发布

问题:

I have Before Insert trigger under certain condition, If condition: false Error occurs. I should display that error message which occurs in database trigger to HTML web page to notify user!

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

Here Insertion code! I used mysql_sqlstate() returns the SQLSTATE value But not catching error message

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);

I should get error message from trigger in case condition false!!!