如何编写我的php脚本以将多行插入数据库?

时间:2016-04-24 16:24:57

标签: php mysql json

我还在学习服务器端代码,这就是我有这个问题的原因。到目前为止,我有一个只插入一行的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);
}

?>

但是在这种情况下,我将POST一个包含多行的整个数组的JSON字符串。如何设置php脚本来处理多行?

我要转换为JSON字符串的类是:

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

    ....
}

很抱歉,如果我忘记了一些重要信息,我对使用php和网络服务器完全不熟悉。如果您说明我需要添加的内容以使帖子更清晰,我可以编辑帖子。

1 个答案:

答案 0 :(得分:2)

您可以像这样编写多行INSERT个查询:

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')

你可以提供尽可能多的行&#39;只要你将查询长度保持在几十千字节,就可以得到你想要的值。

你也可以用

开始一堆单行插入(就像你正在做的那样)
    BEGIN TRANSACTION;

并以

结尾
    COMMIT;

这将(如果您正在使用InnoDB)为您提供多行插入的大部分速度提升。它还具有甜蜜的特性,如果程序崩溃,数据库保持不变。