2013-12-13 47 views
-1

我有這個代碼,其目的是在MySQL中向兩個表(預計,emailsent)插入值。我遵循Insert into 2 tables with PDO MySQL的答案。但是,我很難在第二個表格中保存相應的值。保存到第一張表格(潛在客戶)似乎有效。我搜索這個網站的答案,但無濟於事。使用PDO將值插入到2個或更多的mysql表中

我正在使用PDO。

所以我的問題是雙重的:

  1. 是[A](下稱表中插入)有效的代碼?
  2. 如何使[B]有效,將相應的值保存到第二個表(emailsent)中的相應鍵/列中?

if(isset($_POST['senderEmail'])) 
{ 
     try 
     { 
    ... 

[A]  $q= "INSERT INTO 'prospects'('senderName', 'senderEmail', 'offer', 'dateTimeSent') 
     VALUES (:senderName, :senderEmail, :offer, :dateTimeSent);  

     INSERT INTO 'emailsent'('call_timeSched', 'call_time', 'contactTelSched', 'contactTel', 'fileAttach', 'emailTextbox') 
      VALUES (:call_timeSched, :call_time, :contactTelSched, :contactTel, :fileAttach, :emailTextbox)"; // inserting into EMAILSENT table 

     $query = $dbh ->prepare($q); 

[B]  $results = $query->execute(array(
      ":senderName"=>$senderName, 
      ":senderEmail"=>$senderEmail, 
      ":offer"=>$offer, 
      ":dateTimeSent"=>$dateTimeSent, 
      ":call_timeSched"=>$call_timeSched, 
      ":call_time"=>$call_time, 
      ":contactTelSched"=>$contactTelSched, 
      ":contactTel"=>$contactTel, 
      ":fileAttach"=>$fileAttach, 
      ":emailTextbox"=>$emailTextbox, 
     )); 

     } 
     catch (PDOException $e) 
     { 
     $error = 'Error adding elements to database: ' . $e->getMessage(); 
     include 'error.html.php'; 
     exit(); 
     } 

     exit(); 
    } 

回答

0

對我來說我更喜歡使用這個......

"INSERT INTO emailsent VALUES (:call_timeSched, :call_time, :contactTelSched, :contactTel, :fileAttach, :emailTextbox)"; // inserting into EMAILSENT table 

注ü必須把所有的數據庫字段中的值。

+0

我還沒有測試過,但如果窗體用戶留下一個空白字段,這個代碼是否工作?那麼在所有領域使用默認值是一個好習慣嗎?此外,它會影響[B]? – Synod

+0

這有助於最小化sql查詢中的進程。它只要你記住你的領域就可以使用它。 – Marc