【问题标题】:CSV format data input to mysql with separator带分隔符的 CSV 格式数据输入到 mysql
【发布时间】:2019-05-28 22:02:48
【问题描述】:

我想将带有分隔符 (|) 的 csv 格式的输入列表从 Textarea 导入我的 MySQL 数据库。

但它总是失败,即使格式正确。

消息来了:Error, 0 added successfully.

我的格式:

Thomas|Maier|5778011152|Bahnweg|232

任何一个想法?

if(isset($_POST["base_name"]) && isset($_POST["new_entry"])) {
    $myList = preg_replace("/\r|\n/", "", preg_split("/$\R?^/m", $_POST["new_entry"]));
    foreach($myList as $info) $csv[] = explode($_POST["separator"], $info);

    $csvParams = $csv[0];
    array_shift($csv);

    $success = 0;
    $total = 0;

    foreach($csv as $info) {
        $sqlInsert = array_combine($csvParams, $info);
        $sqlInsert["base"] = $_POST["base_name"];
        $sqlInsert["info"] = "unbenutzt";

        $p = softwareInsertArray($softwareSqlLink, $sqlInsert, "person");
        if($p) $success++;
        $total++;
    }

    $q = softwareRunQuery($softwareSqlLink, false, "INSERT INTO statistics (`key`, `val`) VALUES ('".$_POST["base_name"]."|profit', '0');");
}

if(isset($total)) {
    if($total == $success && $total > 0 && $q) {
        $alert = array("type" => "success", "header" => "Erfolgreich!", "text" => "Success.");
        softwareSqlLog($softwareSqlLink, "person", array("status" => 1, "info" => array("base" => $_POST["base_name"], "text" => $success." person added successfully")));
    } else {
        $alert = array("type" => "danger", "header" => "Fehler!", "text" => $success."/".$total." sucess.");
        softwareSqlLog($softwareSqlLink, "person", array("status" => 0, "info" => array("base" => $_POST["base_name"], "text" => $success."/".$total." added.")));
    }
}

softwareInsertArray 代码:pastebin.com/raw/vUnQTpxU

【问题讨论】:

    标签: php mysql mysqli export-to-csv


    【解决方案1】:

    您只想用逗号替换管道吗? IE SELECT 替换('Thomas|Maier|5778011152|Bahnweg|232','|', ',')

    【讨论】:

    • 也尝试使用逗号。但是,如果我将分隔符输入留空并在添加的文本区域信息中添加 5 行,但没有信息,可能是因为有更多的 DB 列不仅仅是:姓名、姓氏、电话、街道、号码?
    • 上述解决方案只会返回如下字符串:'Thomas, Maier, 5778011152, Bahnweg, 232'需要以不同的方式制作它。您是否需要分隔字符串的每一部分并格式化插入查询以将每一部分存储在特定列中? IE: 'Thomas' = [FirstName] 'Maier' = [LastName] 等等?
    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2020-06-22
    • 2020-12-26
    • 2014-12-13
    • 1970-01-01
    相关资源
    最近更新 更多