2016-04-24 49 views
1

我還在學習服務器端代碼,這就是爲什麼我有這個問題。到目前爲止,我有一個只能插入一行的php腳本。這裏是:如何編寫我的php腳本來將多行插入到數據庫中?

<?php 

$response = array(); 

if(isset($_POST['team_full_name']) && isset($_POST['team_short_name'] && isset($_POST['league'])) 
{ 
    $team_fn = $_POST['team_full_name']; 
    $team_sn = $_POST['team_short_name']; 
    $league = $_POST['league']; 

    require_once __DIR__ . '/db_connect.php'; 

    $db = new DB_CONNECT(); 
    $result = mysql_query("INSERT INTO teamData(team_full_name, team_short_name, league) 
     VALUES('$team_fn', '$team_sn' '$league')"); 

    if($result) 
    { 
     $response["success"] = 1; 
     $response["message"] = "Team Data successfully added."; 

     echo json_encode($response); 
    } 
    else 
    { 
     $response["success"] = 0; 
     $response["message"] = "Error occurred!"; 

     echo json_encode($response); 
    } 
} 
else 
{ 
    $response["success"] = 0; 
    $response["message"] = "Required field(s) is missing."; 
    echo json_encode($response); 
} 

?> 

但在這種情況下,我將張貼整個數組持有多行的JSON字符串。我如何設置php腳本來處理多行?

我正在轉換成JSON字符串類是:

public class TeamData 
{ 
    String mFullName; 
    String mShortName; 
    String mLeague; 

    .... 
} 

很抱歉,如果我忘記了一些重要的信息,我完全新的PHP和Web服務器的工作。我可以編輯帖子,如果你說明我需要添加什麼來使帖子更清晰。因爲你把你的查詢長度爲幾十千字節

INSERT INTO teamData(team_full_name, team_short_name, league) VALUES 
     ('$val', '$val', '$val'), 
     ('$val', '$val', '$val'), 
     ('$val', '$val', '$val'), 
     ('$val', '$val', '$val'), 
     ('$val', '$val', '$val') 

,只要你想你可以把儘可能多的行的價值值,只要:

+0

PHP中的'mysql_ *'函數已被棄用,不應使用。請閱讀[爲什麼不應該在PHP中使用mysql_ *函數?](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)瞭解有關爲什麼和用什麼來代替它們。 –

回答

2

你可以寫多行INSERT查詢這個樣子。

你也可以做一堆單行插入的(像你這樣做)與

BEGIN TRANSACTION; 

開始他們和

COMMIT; 

結束他們這將(如果你是使用InnoDB)可爲您提供多路插入的大部分速度提升。它也有一個甜蜜的特點,如果你的程序崩潰,數據庫保持不變。

+0

我應該在帖子中加入這個,但我不會增加一個固定大小的團隊,它會改變。除非我誤解,否則我不認爲我可以指定行數。也許在一個由我的Java程序控制的循環中做一堆單行插入會更好,但是我不知道該怎麼做,所以如果你可以發佈一個如何使用'BEGIN TRANSACTION '和你所做的'COMMIT'陳述,這將是非常有用的。 –

+0

雖然不是「幾十千字節」,但是上限是mysql的max_allowed_pa​​cket。 – strangeqargo

相關問題