2016-03-31 13 views
0

コードデシベルは以下

$sth = $this->db->prepare('UPDATE `adwords_clients_google` set status = 2'); 
    $sth->execute(); 
    $sth = null; 


    $sth = $this->db->prepare(' 
     INSERT INTO 
      `adwords_clients_google` 
      (`client_foreign_id`, `status`, `client_name`, `client_currency`) 
     VALUES 
      (:id, 1, :name, :currency) 
     ON DUPLICATE KEY UPDATE 
      `status` = VALUES(`status`), 
      `client_name` = VALUES(`client_name`), 
      `client_currency` = VALUES(`client_currency`) 
    '); 
    $sth->bindParam(':id', $id); 
    $sth->bindParam(':name', $name); 
    $sth->bindParam(':currency', $currency); 
    foreach($accounts as $account) { 
     $id = $account->customerId; 
     $name = $account->name; 
     $currency = $account->currencyCode; 
     $sth->execute();   
    } 

にデータを追加し、私は、ここにtryを追加したいと

 try { 
     if ($sth->execute()) { 
      helper::putToLog('ok queryCampaignArr, inserted rows: ' . $sth->rowCount()); 
     } else { 
      helper::putToLog('not ok', true); 
     } 
    } catch (Exception $ex) { 
     helper::putToLog($sth->debugDumpParams(), true); 
     helper::putToLog("ERROR: ".$ex->getMessage(), true); 
    } 

のようなものが、私はそれを追加する必要があります私は知らないだろうが実行PDOしようとしますすべての行?どうやってやるの?

答えて

0

DBを接続するためにPDOを使用している場合は、PDOExceptionクラスを使用して例外を処理します。

try { 
    if ($sth->execute()) { 
     helper::putToLog('ok queryCampaignArr, inserted rows: ' . $sth->rowCount()); 
    } else { 
     helper::putToLog('not ok', true); 
    } 
} catch (PDOException $ex) { 
    $Exception->getMessage(); // Error message 
    (int)$Exception->getCode(); // Error Code 
} 
+0

私の質問ではありません。 'foreach'の中で' try'を使う方法を尋ねました – Heidel