如何在MSSQL中成功删除数据后显示警报框

时间:2019-05-26 10:05:44

标签: javascript php sql sql-server

我想在成功删除MSSQL或不删除数据后显示JavaScript警报。这该怎么做?我已经编写了这段代码,但是每次删除都仅显示message=success警报,即使由于诸如“与参考冲突(foreign_key)冲突”之类的错误而导致删除不起作用时,也请单击此链接。

 echo "<a class='activater'  href='ma_QualiOverviewloeschen.php?TestaufstellungID=".$row['TestaufstellungID'] ."&QualiID=".$row['QualiID'] ."' title='Qualitest l&ouml;schen' data-toggle='tooltip' onclick='confirm_delete()'>   <span class='glyphicon glyphicon-trash'></span></a>"; 

它调用以下处理SQL部分的php页面:

$QualiDelete =("DELETE FROM MyDB.dbo.Testaufstellung WHERE MyDB.dbo.Testaufstellung.TestaufstellungID = :TestaufstellungID");
$QualiDelete .=("DELETE FROM MyDB.dbo.AllgemeineAngaben WHERE MyDB.dbo.AllgemeineAngaben.QualiID = :QualiID");

$sth = $connection->prepare($QualiDelete);
$sth->execute(array(':TestaufstellungID' => $TestaufstellungID, ':QualiID:' => $QualiID));

                if($sth)
                {
                    header("location: ma_QualiOverview.php?message=success");   
                }
                else
                {
                    echo sqlsrv_errors();
                    header("location: ma_QualiOverview.php?message=failed");    
                }
                $connection = null;

返回链接所在的主页,单击ifelse的以下message注意事项应向我显示正确的警报。

<?php
if($_GET['message']=='success'){
    echo '<script language="javascript">';
    echo 'alert("Erfolgreich gelöscht.");';
    echo '</script>';
} elseif($_GET['message']=='failed'){
    echo '<script language="javascript">';
    echo 'alert("Nicht gelöscht, da Quali "ongoing" ist.");';
    echo '</script>';
}
?>

我想念什么?

1 个答案:

答案 0 :(得分:1)

$sth永远不会是falsy,您必须检查$sth->execute的返回值 此外,您应该在发送标头后回显错误。

由于始终定义$sth,因此您始终可以获得成功结果 在此处查看修改后的代码

$QualiDelete =("DELETE FROM MyDB.dbo.Testaufstellung WHERE MyDB.dbo.Testaufstellung.TestaufstellungID = :TestaufstellungID");
$QualiDelete .=("DELETE FROM MyDB.dbo.AllgemeineAngaben WHERE MyDB.dbo.AllgemeineAngaben.QualiID = :QualiID");

$sth = $connection->prepare($QualiDelete);//Check the value returned instead of $sth
$result = $sth->execute(array(':TestaufstellungID' => $TestaufstellungID, ':QualiID:' => $QualiID));

                if($result )
                {
                    header("location: ma_QualiOverview.php?message=success");   
                }
                else
                {
                    header("location: ma_QualiOverview.php?message=failed");  
                    echo sqlsrv_errors();//Echo must be after header

                }
                $connection = null;