แทรกข้อมูลไปยังฐานข้อมูลจากอาร์เรย์หลายมิติใน PHP

ฉันจำเป็นต้องแทรกข้อมูลบางอย่างลงในฐานข้อมูล mysql ซึ่งจัดเก็บไว้ในอาร์เรย์หลายมิติ

ฉันมีค่าแยกกันและพร้อมที่จะนำข้อมูลลงฐานข้อมูล มันทำให้เกิดปัญหาโดยรายงานว่าส่วนของคำสั่ง "chccheung.BookingDate (ห้อง, วันที่, จาก, ถึง)" ไม่ใช่รูปแบบ/ไวยากรณ์ที่ถูกต้อง นอกจากนี้ยังมีข้อผิดพลาดใกล้เคียง "จาก, ถึง)"

หลังจากการทดสอบและแก้ไขข้อบกพร่อง ฉันไม่พบวิธีแก้ไขปัญหานี้ ใครสามารถช่วยฉันได้บ้าง ขอบคุณล่วงหน้า

   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 แหล่งที่มา
comment
วันที่อาจเป็นคีย์เวิร์ดที่สงวนไว้ ลองใส่เครื่องหมายถูก (`..`)   -  person Friso Kluitenberg    schedule 07.09.2014


คำตอบ (1)


from และ to เป็นคีย์เวิร์ดที่สงวนไว้สำหรับ MySQL ล้อมไว้ใน backticks หรือใช้ชื่ออื่นสำหรับคอลัมน์เหล่านั้น


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

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

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

เพิ่มการรายงานข้อผิดพลาดลงในไฟล์ของคุณ http://php.net/manual/en/function.error-reporting.php

ขึ้นอยู่กับ API ที่ใช้

หากเป็น PDO ให้เพิ่ม $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); ทันทีหลังจากเปิดการเชื่อมต่อ $pdo เป็นตัวแปรการเชื่อมต่อที่ใช้

หากไม่ใช่ PDO ให้ใช้ค่าที่เทียบเท่าใน mysqli_ หรือ mysql_ ซึ่งไม่ชัดเจนว่าคุณใช้ MySQL API ใด

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

ใช้วิธีใดวิธีหนึ่ง:

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

ที่ด้านบนของไฟล์ของคุณ

person Funk Forty Niner    schedule 07.09.2014