Почему PHP не показывает исключение? - PullRequest
1 голос
/ 09 января 2010

Я использую следующий код. Когда происходит сбой запроса, он не отображает предупреждение, которое я определил в блоке «catch».

<?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 ]

7 голосов
/ 09 января 2010

Если вы хотите получить сообщение об исключении, вы должны использовать:

$ex->getMessage();

И не только $ex.

Кроме того, вам следует избегать кавычек в этой строке, чтобы быть уверенным, что у вас есть какая-то допустимая строка Javascript - добавляет косую черту , здесь может помочь.


Если это ничего не меняет:

  • Вы уверены, что возникло исключение?
  • Можете ли вы взглянуть на вывод вашего скрипта? («просмотреть исходный код» в вашем браузере)


Также, если вы хотите получить полную трассировку стека исключения, вы можете использовать что-то вроде этого, вместо того, чтобы делать JS alert:

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

И, как всегда: установка замечательного расширения Xdebug может сильно помочь на сервере разработки; -)

1 голос
/ 09 января 2010

Для дальнейшего использования при выводе значений в JavaScript из PHP обычно лучше всего использовать json_encode. Это устраняет необходимость заключать его в кавычки и избегать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...