【问题标题】:Insert data to database from the multi-dimensional array in PHP将数据从PHP中的多维数组插入数据库
【发布时间】:2014-10-31 22:25:23
【问题描述】:

我需要向存储在多维数组中的mysql数据库中插入一些数据。

我有单独的值并准备将数据放入数据库。它导致的问题是它报告语句“chccheung.BookingDate(Room,Date,From,To)”的部分不是正确的格式/语法,并且它在“From,To)”附近有错误。

经过测试和调试,我找不到任何解决此问题的方法,谁能帮助我,提前谢谢。

   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

【问题讨论】:

  • 日期可能是保留关键字,请尝试将其括在刻度(`..`)内

标签: php mysql multidimensional-array foreach


【解决方案1】:

fromto 是 MySQL 保留关键字。要么用反引号将它们包装起来,要么为这些列使用其他名称。


"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))mysqli_query()
or die(mysql_error())mysql_query()

任意使用:

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

在文件的顶部。

【讨论】:

    猜你喜欢
    • 2017-06-21
    • 2011-12-06
    • 2017-05-18
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2015-06-08
    • 2014-05-28
    相关资源
    最近更新 更多