如何使用php写入文件

时间:2015-05-07 21:24:57

标签: php csv

我有一个表单,当我点击提交时,我需要将我发布的数据保存到csv文件中。下面的代码在我的脚本的其他地方生成语法错误,但我知道问题出在这里。有人可以解释我的错误吗?

//Store all data into variables ready to save
    if (isset($_POST['submit'])) {
        $ID = $_POST['gameID'];
        $GameName = $_POST['gameName'];
        $GameCost = $_POST['gameCost'];
        $Days = $_POST['days'];
        $Total = $_POST['total'];
        $DateFrom = $_POST['reservationStart'];
        $DateTo = $_POST['DateEnd'];
        $StudentName = $_POST['studentName'];


//Saving the booking
   $csv_file = 'loans.csv';
   $csv_handle = fopen($csv_file,'a');
   $csv_item = "\"$ID\",\"$GameName\",\"$GameCost\",\"$Days\",\"$Total\",\"$DateFrom\",\"$DateTo\",\"$StudentName\"\n";
   fwrite($csv_handle, $csv_item);
   fclose($csv_handle);

3 个答案:

答案 0 :(得分:1)

你错过了if

的结束括号
//Store all data into variables ready to save
    if (isset($_POST['submit'])) {
            $ID = $_POST['gameID'];
            $GameName = $_POST['gameName'];
            $GameCost = $_POST['gameCost'];
            $Days = $_POST['days'];
            $Total = $_POST['total'];
            $DateFrom = $_POST['reservationStart'];
            $DateTo = $_POST['DateEnd'];
            $StudentName = $_POST['studentName'];
    } // THIS CLOSING BRACE

    //Saving the booking
       $csv_file = 'loans.csv';
       $csv_handle = fopen($csv_file,'a');
       $csv_item = "\"$ID\",\"$GameName\",\"$GameCost\",\"$Days\",\"$Total\",\"$DateFrom\",\"$DateTo\",\"$StudentName\"\n";
       fwrite($csv_handle, $csv_item);
       fclose($csv_handle);

答案 1 :(得分:1)

最好使用 public void Display(int id) { Display(ven => ven.VenueID == id); } public void Display(string name) { Display(ven => ven.Shortname == name); } public void Display(Expression<Func<Venue, bool>> whereClause) { Venue venue = db.Venues.Where(whereClause).FirstOrDefault(); /// etc

fputcsv

问题很可能是转义输入时出错,但是$csv_file = 'loans.csv'; $csv_handle = fopen($csv_file, 'a'); // a fputcsv($csv_handle, array($ID, $GameName, $GameCost, $Days, $total, $DateFrom, $DateTo, $StudentName)); fclose($csv_handle); 会为你解决这个问题

答案 2 :(得分:0)

如果要写入文件末尾,请尝试以下操作:

 file_put_contents($csv_file, $csv_item, FILE_APPEND | LOCK_EX);

  $csv_handle = fopen($csv_file,'a');
  fwrite($csv_handle, $csv_item);
  fclose($csv_handle);