2017-05-30 49 views
-1

我試圖在php mysqli的2個表中插入數據,但它在第一個表中插入數據但沒有在第二個表中插入任何其他列的數據。php mysqli將數據插入到兩個表中

這裏是我的代碼:

$sql = "INSERT INTO socio (name, age, dob, gender, year, stgroup, stadd) VALUES ('$stnam', '$stage', '$stdob', '$stgen', '$styer', '$stGr', '$stadd')"; 
$sql1 = "INSERT INTO parta (name, stgroup, year) VALUES ('$stnam', '$stGr', '$styer')"; 

$result = mysqli_query($con, $sql); 
$result = mysqli_query($con, $sql1); 

有什麼不對的在上面的代碼?有什麼建議麼?

+0

它給出了什麼錯誤? –

+0

沒有全部數據僅在第一個表中插入,不在第二個表中 – Kanna

+1

請向我們顯示您的表格結構,然後請 –

回答

1

我實在看不出有什麼究竟你的代碼錯誤,可能會發生一些對parta表中的列不應該爲空。隨着你提供的代碼,很難說,因爲根本沒有錯誤處理。您可能想要使用事務,然後使用適當的錯誤處理並使用準備好的語句。

請試試我爲您準備的這段代碼。

<?php 
$con = new mysqli("..."); // you should know this part already 

$success = false; 
try { 

    $con->autocommit(FALSE); 

    $con->begin_transaction(); 

    if ($sql = $con->prepare("INSERT INTO socio (name, age, dob, gender, year, stgroup, stadd) VALUES (?,?,?,?,?,?,?)")) { 
     $sql->bind_param('sissss', $stnam, $stage, $stdob, $stgen, $styer, $stGr, $stadd); 
     if (!$sql->execute()) { 
      throw new Exception($sql->error); 
     } 

     if ($sql_two = $con->prepare("INSERT INTO parta (name, stgroup, year) VALUES (?,?,?)")) { 
      $sql_two->bind_param('sss', $stnam, $stGr, $styer); 
      if (!$sql_two->execute()) { 
       throw new Exception($sql_two->error); 
      } 
     } 
    } 

    if ($con->commit()) { 
     $success = true; 
    } else { 
     throw new Exception('Transaction commit failed...'); 
    } 
}catch (Exception $ex) { 
    try { 
     // something went wrong,rollback and display message 
     $con->rollback(); 
     echo $ex->getMessage(); 
    } 
    catch (Exception $e) { 
     echo $e->getMessage(); 
    } 
} 
$con->autocommit(TRUE); 

if ($success) { 
    echo "data successfully inserted"; 
} 
?> 
+0

嘿,你是對的,因爲我沒有提到其他字段的值爲null,這就是爲什麼沒有插入數據。我將其更改爲空,現在可以使用。 – Kanna

-3

試試這個。這可能是因爲你有兩個不同的動作相同的變量名稱。我剛剛重命名第二個結果爲$ RESULT1

$sql = "INSERT INTO socio (name, age, dob, gender, year, stgroup, stadd) VALUES ('$stnam', '$stage', '$stdob', '$stgen', '$styer', '$stGr', '$stadd')"; 

$sql1 = "INSERT INTO parta (name, stgroup, year) VALUES ('$stnam', '$stGr', '$styer')"; 

$result = mysqli_query($con, $sql); 
$result1 = mysqli_query($con, $sql1); 
+1

變量名稱在這裏沒有效果。 OP不檢查變量或使用它們。您可以獲得至少改進的OP代碼以準備報表。 – Akintunde007

+0

我已經嘗試過,但它也不會那樣工作。 – Kanna