2014-12-06 96 views
-1

函数的返回值我有一个PHP函数,就像这样:从PDO的try/catch

function add($db, $value) { 
    try { 
    $stmt = $db->prepare("INSERT INTO table(value) VALUES (?);"); 
    $stmt->execute(array($value)); 
} 
catch(PDOException $e) { 
    error_log($e->getMessage()); 
     // Error handeling 
    } 
} 

如果查询是全成,没有例外,应该不是函数返回TRUE?

获得上述收益实现的功能的唯一方法是,如果我修改了“尝试”部分:

if ($stmt->execute(array($value))) { 
return TRUE; 
    } 

我缺少什么?

+0

现在你的问题是什么? – Rizier123 2014-12-06 15:15:17

+0

我的问题是:不应该函数返回true – TheG 2014-12-06 15:18:20

+0

我的问题是如果“if”部分真的应该是nessasary。该函数不应该返回TRUE吗? – TheG 2014-12-06 15:19:36

回答

0

引述the documentation

如果省略返回NULL值将被退回。

由于NULL在大多数情况下被评估为假,那么答案是否定的,这个功能将不会返回TRUE除非你明确状态吧。例如:

function add($db, $value) { 
    try { 
     $stmt = $db->prepare("INSERT INTO table(value) VALUES (?);"); 
     if ($stmt->execute(array($value))) { 
      return TRUE; 
     } 
    } 
    catch(PDOException $e) { 
     error_log($e->getMessage()); 
     // Error handeling 
    } 
    // If we got here, the execute did not succeed 
    return FALSE; 
}