What causes SQL Server to return the message 'The statement has been terminated'?

前端 未结 3 1865
梦如初夏
梦如初夏 2021-01-18 05:59

I have a very simple INSERT statement being executed from a PHP script running on a Linux Apache web server. I can run the query fine from within SQL Management Studio and

3条回答
  •  孤独总比滥情好
    2021-01-18 06:31

    To get a numeric error code from mssql you can do a select that looks something like

    SELECT @@ERROR AS ErrorCode
    Which SHOULD return the correct error code.

    You can also try this code which is posted on PHP.NET.

    function query($sQuery, $hDb_conn, $sError, $bDebug)
    {
        if(!$rQuery = @mssql_query($sQuery, $hDb_conn))
        {
            $sMssql_get_last_message = mssql_get_last_message();
            $sQuery_added  = "BEGIN TRY\n";
            $sQuery_added .= "\t".$sQuery."\n";
            $sQuery_added .= "END TRY\n";
            $sQuery_added .= "BEGIN CATCH\n";
            $sQuery_added .= "\tSELECT 'Error: '  + ERROR_MESSAGE()\n";
            $sQuery_added .= "END CATCH";
            $rRun2= @mssql_query($sQuery_added, $hDb_conn);
            $aReturn = @mssql_fetch_assoc($rRun2);
            if(empty($aReturn))
            {
                echo $sError.'. MSSQL returned: '.$sMssql_get_last_message.'.
    Executed query: '.nl2br($sQuery); } elseif(isset($aReturn['computed'])) { echo $sError.'. MSSQL returned: '.$aReturn['computed'].'.
    Executed query: '.nl2br($sQuery); } return FALSE; } else { return $rQuery; } }

提交回复
热议问题