通过PHP将多个值添加到SQL的多个列

时间:2016-06-10 12:41:10

标签: php sql insert multiple-columns

我有一个表,每行包含150列,所以我需要插入150个值。

我知道插入3列的方法是这样的:

$query="INSERT INTO table_name
(data1,data2,data3)
VALUES
('data_part_1', 'data_part_2', 'data_part_3')";

但如果我必须插入150个值,那就是:

$query="INSERT INTO table_name
(data1,data2,data3,...,data150)
VALUES
('data_part_1', 'data_part_2', 'data_part_3',...,'data_part_150')";

这需要很多时间。

如何更有效地完成工作?

由于

1 个答案:

答案 0 :(得分:1)

当你说它需要花费很多时间时,我想你要说你需要花费太多时间在查询中写出150个变量而不是计算时间(因为150个变量不需要那么长时间)。如果是这种情况,写这个的最好方法是将列名放在一个数组中,将数据(或者你称之为data_parts)放在另一个数组中并使用for循环。

public static Int64 GetSynchronizationVersion(string connString)
{
    Int64 synchronizationVersion = 0;
    string sql =
        "SELECT Convert(BigInt,CHANGE_TRACKING_CURRENT_VERSION());";
    using (SqlConnection conn = new SqlConnection(connString))
    {
        SqlCommand cmd = new SqlCommand(sql, conn);
        //This query has no parameters.
        try
        {
            conn.Open();
            synchronizationVersion = (Int64)cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
    return synchronizationVersion;
}

旁注:表中有150列不是设计数据库的最佳方法。您可能想要考虑将其重新创建到多个表中。