【问题标题】:Remove additional space while entering data to mysql向mysql输入数据时删除额外的空间
【发布时间】:2023-04-04 10:55:01
【问题描述】:

我有一个向 php 发送一些字符串数组的 android 应用程序。 php 获取该数组并将该数据值单独插入到数据库中。现在,当插入数据时,每行数据都会随之获得一个额外的空白。 如何消除它。我尝试用字符串替换,但是当尝试替换时,我无法插入任何东西。 输入第二行时会添加一个空格。

这里是输入数据的 PHP 代码。

<?php
$response = array();

// check for required fields
if (isset($_POST['docname']) && isset($_POST['prods'])) {

    $docname = $_POST['docname'];
    $prods = $_POST['prods'];

    $e = trim($prods, '[]');
    $pr = preg_split("/[,]/", $e);

    $img = "image/";

    //$docs=array_unique($pr);

    $count = count($pr);

    define("DB_HOST", "localhost");
    define("DB_USER", "root");
    define("DB_PASSWORD", "root");
    define("DB_DATABASE", "android_api");

    $con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD) or die(mysqli_connect_error());

    // selecting database
    $db = mysqli_select_db($con, DB_DATABASE) or die(mysqli_connect_error());

    foreach ($pr as $val) {

        $img = $img . $val . ".jpg";

        // mysql inserting a new row
        $result = mysqli_query($con, 
            "INSERT INTO product_entered(id, doc_name, product_name, image_path, count) 
            VALUES('$id','$docname','$val','$img','$count')"
        );
    }

    // check if row inserted or not
    if ($result) {

        // successfully inserted into database
        $response["success"] = 1;
        $response["message"] = "Product successfully created.";

        // echoing JSON response
        echo json_encode($response);
    } 
    else {

        // failed to insert row
        $response["success"] = 0;
        $response["message"] = "Oops! An error occurred.";

        // echoing JSON response
        echo json_encode($response);
    }
} 
else {

    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
}

当我使用 JSON 显示它时,它看起来像这样..

 {
        "id": "15",
        "doc_name": "Dr. XYZ",
        "product_name": " PROTONIL-D",
        "image_path": "image/image/ PROTONIL-D.jpg",
        "count": "7"
    },
    {
        "id": "14",
        "doc_name": "Dr. XYZ",
        "product_name": " PROATH_PLUS",
        "image_path": "image/image/ PROATH_PLUS.jpg",
        "count": "7"
    },

每次插入一行时都会插入一个空格 我不知道如何解决这个问题。

【问题讨论】:

  • 你能做一个var_dump($prods) 并将结果粘贴到问题中吗?
  • 怎么做,因为我在 android 应用程序中有多个复选框,当我选择其中一些并将其发送到 php 代码时,这是在后台执行的。

标签: php android mysql


【解决方案1】:

您是否尝试在循环中执行trim ()

foreach ($pr as $val) {
    $val = trim($val);

    $img = $img . $val . ".jpg";

    $result = mysqli_query($con, 
        "INSERT INTO product_entered(id, doc_name, product_name, image_path, count) 
        VALUES('$id','$docname','$val','$img','$count')"
    );
}

【讨论】:

  • 是的,我尝试过 TRIM 和 REPLACE 。但没用
  • 如果您不是在没有 bom 和 MS Windows 的 utf8 编码中出现的 ^M 值,是否没有隐藏值?您是否也尝试过更改 IDE?
  • 对不起..我无法理解您要说的内容。你告诉我使用 IDE,比如 eclipse、netbeans 或 dreamviewer..?
  • 某些 IDE 有时会在编码或插入特殊字符时出现问题,而不会被发现。这就是为什么有时用另一个编辑器打开和保存文件是明智之举。
  • 所以 MS Windows,试试 Vim 只是为了字符
猜你喜欢
  • 1970-01-01
  • 2015-02-26
  • 1970-01-01
  • 2020-10-16
  • 2013-08-21
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 2016-11-23
相关资源
最近更新 更多