Masukkan data ke database dari array multidimensi di PHP

Saya perlu memasukkan beberapa data ke database mysql yang disimpan dalam array multidimensi.

Saya memiliki nilai terpisah dan siap memasukkan data ke database. Hal ini menyebabkan masalah yang dilaporkan bahwa bagian pernyataan "chccheung.BookingDate(Room,Date,From,To)" format/sintaksnya tidak benar, juga ada kesalahan di sekitar "From,To)".

Setelah pengujian dan debugging, saya tidak dapat menemukan solusi apa pun untuk mengatasi masalah ini, adakah yang bisa membantu saya, terima kasih sebelumnya.

   open the database connection
   .......
       foreach($Booking as $key => $value){
        $rmID = $key;   
        foreach($value as $format => $array){
            foreach($array as $date => $detail){
                $bookDate = $date; 
                foreach($detail as $period =>$fromTo){
                    if($period=="user"){
                        $user = $fromTo;//$query = "INSERT INTO RmBooking_Applicant(user) VALUES ($fromTo)"; 
                    }
                    if($period=="username"){
                        $userID = $fromTo;//$query = "INSERT INTO RmBooking_Applicant(username) VALUES ($fromTo)"; 
                    }
                    if($period=="from"){
                        $fromTime = $fromTo;//$query = "INSERT INTO BookingDate(From) VALUES ($fromTo)";
                    }
                    if($period=="to"){
                        $toTime = $fromTo;//$query = "INSERT INTO BookingDate(To) VALUES ($fromTo)";
                    }
                }
            }
        }                   
    }
    $bookingInformation = "INSERT INTO testingData.BookingDate(Room,Date,From,To) VALUES($rmID,$date,";
    $bookingInformation .= implode(',', $fromTo);
    $bookingInformation .= ")";
    $applicantDetails = "INSERT INTO testingData.RmBooking_Applicant(username,user) VALUES(";
    $applicantDetails .= implode(',', $userID);
    $applicantDetails .= implode(',', $user);;
    $applicantDetails .= ")";
    ......
    close database connection

person Chris.C    schedule 07.09.2014    source sumber
comment
Tanggal mungkin merupakan kata kunci yang dicadangkan, coba sertakan dalam tanda centang (`..`)   -  person Friso Kluitenberg    schedule 07.09.2014


Jawaban (1)


from dan to adalah kata kunci khusus MySQL. Bungkus dengan backticks atau gunakan nama lain untuk kolom tersebut.


"INSERT INTO testingData.BookingDate(Room,Date,`From`,`To`)...

//$query = "INSERT INTO BookingDate(`From`)

//$query = INSERT INTO BookingDate(`To`)...

Tambahkan pelaporan kesalahan ke file Anda http://php.net/manual/en/function.error-reporting.php

tergantung pada API yang digunakan

Jika PDO, tambahkan $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); tepat setelah koneksi dibuka. $pdo menjadi variabel koneksi yang digunakan.

Jika bukan PDO, gunakan yang setara di mysqli_ atau mysql_ tidak jelas API MySQL mana yang Anda gunakan.

or die(mysqli_error($con)) to mysqli_query()
or die(mysql_error()) to mysql_query()

Apa pun pilihannya, gunakan:

error_reporting(E_ALL);
ini_set('display_errors', 1);

di bagian atas file Anda.

person Funk Forty Niner    schedule 07.09.2014