如何访问包含逗号分隔值的输入框值并插入数据库

Posted

技术标签:

【中文标题】如何访问包含逗号分隔值的输入框值并插入数据库【英文标题】:how to access input box values that contains comma separated values and insert into database 【发布时间】:2017-12-27 09:12:35 【问题描述】:

这是我尝试过的 php 代码

<?php
include_once("../include/connClass.php");
$db = new Database();
$conn = $db->getConnection();

if(isset($_POST["save"]))

 $date = $_POST["txtDate1"];


$date = $_POST["txtDate1"];
$service = $_POST["txtService1"];
$charge = $_POST["txtCharge1"];
$amount = $_POST["txtAmount1"];
$unit = $_POST["txtUnit1"];
$total = $_POST["txtTotal1"];

for ($i = 0; $i <= count($date); $i++) 

 try 
    $sql = $conn->prepare("INSERT INTO backup_master (backup_date, 
backup_service, backup_charge, backup_amount, backup_unit, backup_total)
        VALUES (:backup_date, :backup_service, :backup_charge, 
 :backup_amount, :backup_unit, :backup_total)");

    $sql->bindParam(':backup_date', $date);
    $sql->bindParam(':backup_service', $service);
    $sql->bindParam(':backup_charge', $charge);
    $sql->bindParam(':backup_amount', $amount);
    $sql->bindParam(':backup_unit', $unit);
    $sql->bindParam(':backup_total', $total);

    $query = $sql->execute();
    // echo $query;

catch (PDOException $e) 
    echo $sql . "<br />Error" . $e->getMessage();


?>

这是我的表单代码

<form method="POST" action="backend/save.php">

<input type="text" id="txtDate1" name="txtDate1">
<input type="text" id="txtService1" name="txtService1">
<input type="text" id="txtCharge1" name="txtCharge1">
<input type="text" id="txtAmount1" name="txtAmount1">
<input type="text" id="txtUnit1" name="txtUnit1">
<input type="text" id="txtTotal1" name="txtTotal1">

<button type="submit" name="save" class="btn btn-primary">Save</button>
</form>

我的问题是我在每个输入框中都有一个带有逗号分隔值的输入框值(例如 abc、xyz、pqr),我想将值一一插入到数据库的不同行中,但现在所有的都是逗号分隔值插入单行任何想法如何做。提前致谢。

【问题讨论】:

@YourCommonSense 如果我没看错问题,它是在询问插入数据库,而不是获取。您链接到的问题是关于获取的。 如果我一个一个地取出那么它很容易插入 【参考方案1】:

您可以分解, 上的所有 POST 变量,然后循环获取最少量的值。

例子:

$date = explode(",", $_POST['txtDate1']);
$unit = explode(",", $_POST['txtUnit1']);

$lowest = 1000; //Bad practice, this assumes there will never be more than 1000 comma seperated values
if (count($date) < $lowest)
    $lowest = count($date); //Loop for all values.

for ($i=0;$i<$lowest;$i++)
    //Insert records into database 1-by-1

【讨论】:

如果我将 $date 插入该数据库,并发出通知通知:数组到字符串转换数据库将数组作为数据。 你在吗?? 发生同样的事情,所有值都在单行中插入到数据库中 Explode 在调用时返回一个数组,因此您必须调用拆分字符串的第 ith 个数字。 您还知道如何从本地存储中删除单个值

以上是关于如何访问包含逗号分隔值的输入框值并插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

在Mysql数据库中插入动态选择框值并显示数据提交消息

cfspreadsheet 在逗号分隔的行插入中转义逗号

如何插入带有逗号的值并出现错误

SQL Server 2005 中的逗号分隔值插入

如何将不同的逗号分隔值插入mysql中的不同列

如何在MySql表中插入逗号分隔时间