Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 如何使用try catch for zend dbtable delete_Zend Framework - Fatal编程技术网

Zend framework 如何使用try catch for zend dbtable delete

Zend framework 如何使用try catch for zend dbtable delete,zend-framework,Zend Framework,我应该在下面的代码段中使用try-catch吗。我认为如果zend不能删除行或异常,它将返回整数(0)。那么什么更好,为什么 $statusDbObj = new Tracker_Model_DbTable_Status(); $where = $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number); $delete = $statusDbObj->delete($whe

我应该在下面的代码段中使用try-catch吗。我认为如果zend不能删除行或异常,它将返回整数(0)。那么什么更好,为什么

$statusDbObj = new Tracker_Model_DbTable_Status();
$where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
$delete = $statusDbObj->delete($where);
if($delete > 0)
{  
   // do something
}
else
{
   // not deleted
}
以下是try-catch:

$statusDbObj = new Tracker_Model_DbTable_Status();
$where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
$delete = $statusDbObj->delete($where);
if($delete > 0)
{  
   // do something
}
else
{
   // not deleted
}
   try
   {   
     $statusDbObj = new Tracker_Model_DbTable_Status();
     $where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
     $delete = $statusDbObj->delete($where);

     if($delete > 0)
     {  
       // do something
     }
   }
   catch (Exception $e)
   {
     // not deleted and print error
   }

我在使用try-catch方面是新手,这取决于您想要解决的问题类型:

$statusDbObj = new Tracker_Model_DbTable_Status();
$where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
$delete = $statusDbObj->delete($where);
if($delete > 0)
{  
   // do something
}
else
{
   // not deleted
}
  • 仅使用
    delete
    结果将帮助您检测“预期问题”(即,当您无法删除条目,因为它们与
    where
    表达式不匹配时)
  • 如果您还使用
    try
    -
    catch
    结构(例如,捕获
    Zend\u Db\u异常
    ,这可能是
    delete
    方法引发的),您还能够检测到“意外问题”(例如,如果Db连接失败)。如果省略此结构,最终的异常将弹出到代码的调用方,您还需要在某个地方解决它们

希望能有所帮助,

这取决于您希望解决的问题类型:

$statusDbObj = new Tracker_Model_DbTable_Status();
$where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
$delete = $statusDbObj->delete($where);
if($delete > 0)
{  
   // do something
}
else
{
   // not deleted
}
  • 仅使用
    delete
    结果将帮助您检测“预期问题”(即,当您无法删除条目,因为它们与
    where
    表达式不匹配时)
  • 如果您还使用
    try
    -
    catch
    结构(例如,捕获
    Zend\u Db\u异常
    ,这可能是
    delete
    方法引发的),您还能够检测到“意外问题”(例如,如果Db连接失败)。如果省略此结构,最终的异常将弹出到代码的调用方,您还需要在某个地方解决它们

希望对第二个问题有帮助,

,你是想用试试catch块吗?是的,我的意思是你需要同时使用这两个,以确保你能考虑所有可能的错误。只是你可能会遇到不同类型的错误,你需要以不同的方式解决它们。异常通常是运行时错误,而返回值可能是或不是错误,这取决于您的应用程序。谢谢您的建议。我将在这里使用TestCcatch来捕获DB连接失败或其他最终异常。对于第二个问题,您是否打算使用TestCcatch块?是的,我的意思是,您需要同时使用这两个,以确保您能够考虑所有可能的错误。只是你可能会遇到不同类型的错误,你需要以不同的方式解决它们。异常通常是运行时错误,而返回值可能是或不是错误,这取决于您的应用程序。谢谢您的建议。我将在这里使用try-catch来捕获数据库连接失败或其他最终异常。
$statusDbObj = new Tracker_Model_DbTable_Status();
$where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
$delete = $statusDbObj->delete($where);
if($delete > 0)
{  
   // do something
}
else
{
   // not deleted
}