Neden PHP istisna gösterilmiyor?

2 Cevap php

Ben aşağıdaki kodu kullanıyorum. Sorgu çöker, ben "catch" bloğu içinde tanımlanan uyarı görüntüleyerek değildir.

<?php
    error_reporting(E_ALL ^ E_NOTICE);
    require_once("../Lib/dbaccess.php");

    //Retrieve values from Input Form
    $CategoryName = $_POST["inCategory"];
    $TotalMembers = $_POST["inTotalMembers"];
    $Details = $_POST["inDetails"];
    $CategoryName = $_POST["inCategory"];
    $Chairman = $_POST["inChairman"];

    $InsertQuery = "REPLACE INTO electioncategorymaster (ecname, ecdescription, ectotalmembers, ecchairman, lastupdated) VALUES ('".$CategoryName."','".$Details."',".$TotalMembers.",'".$Chairman."',now())";
    try
    {
        $Result = dbaccess::InsertRecord($InsertQuery); 
    }
    catch(exception $ex)
    {
        echo "<script type='text/javascript'>alert('".$ex."');</script>";
    }
?>

2 Cevap

Eğer istisna mesajı almak istiyorsanız, kullanmanız gerekir:

$ex->getMessage();

Ve sadece $ex.

addslashes burada yardımcı olabilir - Ayrıca, bazı geçerli JavaScript dize olduğundan emin olmak için, bu dizede tırnak kaçmak gerekir.


If that doesn't change a thing :

  • bir istisna emin orada atılır?
  • Eğer script çıkışında bir göz atabilirsiniz? (Tarayıcınızda "kaynağı")


Also, if you want to get the full stack-trace of the exception, you might want to use something like this, instead of doing a JS alert :

echo '<pre>';
var_dump($ex);
echo '</pre>';

Ve, her zaman olduğu gibi: yükleme büyük Xdebug extension bir geliştirme sunucusunda, bir çok yardımcı olabilir ;-)

PHP JavaScript değerleri çıktısı zaman ileride başvurmak için, sadece kullanmak genellikle en iyi json_encode. Bu tırnak içinde saklanması ve kaçmak için gereksinimini ortadan kaldırır.