2017-04-11 17 views
0

私はこのコードを持っています。複数のQueuriesは最後に実行されたもののみ

$sql = "SELECT * FROM tbl1 where id_no = '$id_no'"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 

    while($row = $result->fetch_assoc()) { 
     $new = $row['full_name']; 
     header("location:new.php?msg=ID Number $id is already 
     Registered"); 
    } 
    } else { 
     $created = date('jS \ F Y h:i:s A'); 
     $tr_no = 'TR_'.rand(10000,99999).'/'.date(Y).''; 

    include '../db_config/connection.php'; 

    //update tables 
    $sql = "INSERT INTO tbl2 (id,vehicle_id,policy_id,insured_by,insurance_co,value_insured,start_date,end_date,created)VALUES ('$tr_no','$reg_no','$p_id','$user_index','$co_id','$value_insured','$start_date','$end_date','$created')" ; 
    $sql = "UPDATE tbl1 SET updated='1' WHERE item_id = '$reg_no'"; 
    $sql = "INSERT INTO tbl3 (doc_number,value,date,reg_no) VALUES('$tr_no','-$value_insured','$created','$reg_no'"; 

    if ($conn->query($sql) === TRUE) { 
     header("location:new_insurance.php?message=ENTRIES SUCCESSFULLY POSTED"); 
    } else { 
     $error = $conn->error; 
     header("location:new_client.php?err=$error"); 
    } 

    $conn->close(); 



    } 
    $conn->close(); 

    ?> 

最後に、挿入クエリと更新クエリを含むビットが問題を抱えています。 3つのクエリをすべて実行するのではなく、最後のクエリだけが実行されます。どのような変更を含める必要がありますか?

+6

ます'$ sql'の内容を無効にします。あなたはそれを連結していません – Jens

+0

どのAPIを使用していますか? 'mysqli_'または' PDO'? – Jens

+2

あなたは 'mysqli_multi_query()'を使う必要があります。 http://php.net/manual/en/mysqli.multi-query.php – Saty

答えて

0

最初の変更これらのステートメントは、($のSQL変数を連結し、セミコロンを追加する ';'。それぞれの文の終わりに)

$sql = "INSERT INTO tbl2 (id,vehicle_id,policy_id,insured_by,insurance_co,value_insured,start_date,end_date,created) VALUES ('$tr_no','$reg_no','$p_id','$user_index','$co_id','$value_insured','$start_date','$end_date','$created');" ; 
    $sql .= "UPDATE tbl1 SET updated='1' WHERE item_id = '$reg_no';"; 
    $sql .= "INSERT INTO tbl3 (doc_number,value,date,reg_no) VALUES('$tr_no','-$value_insured','$created','$reg_no');"; 

ついにmysqli_multi_query()で複数のクエリを実行

if (mysqli_multi_query($con,$sql)) { //con is your connection 
     header("location:new_insurance....... 
+0

これはまだ動作しません。 –

+0

上記のコードは完全ではないので、私はそのページの完全なコードを教えてください。 –

+0

私はコードを修正し、3($ sql)の名前を一意の値に変更してから、それぞれ –

関連する問題