2016-04-24 45 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

相关问题