如何删除 psql 插入中的空格?

How can I remove white spaces in a psql insert?

我有一个文本输入:

<label for="pt"><b style="color:white"> Company name </b></label>
        <input type="text" name="company" maxlength="100" required>

我想插入一个 psql 数据库:

$comp= $_POST["company"];
$comptr = trim($comp);

当我插入它时,没有任何反应。 table 中的数据保持不变,但有多个空格

这是插页:

$queryres = "insert into company (v1, v2, ...) VALUES ('$comptr ','$v2', ...)";  
$resultsel = pg_query($con, $queryres);

示例:

我在输入中写了这个:

  "     TEST     COMP.  "

在table中留下了这个:

"     TEST     COMP.  "

我想改成这样:

"TEST COMP."
    

您可以删除文本中的多个空格,trim() 不行,但是 preg_replace() 就可以了。组合 trim()preg_replace().

$comp = $_POST["company"];
echo trim(preg_replace('/\s+/', ' ', $comp));

// putput: TEST COMP.

preg_replace() https://www.php.net/manual/de/function.preg-replace.php

trim() https://www.php.net/manual/de/function.trim.php

我更喜欢此解决方案的较短形式,组合使用 ltrim()rtrim

$comp = ltrim(rtrim($_POST["company"]));
var_dump($comp);
// output: TEST COMP.

rtrim() - 从字符串末尾去除空格(或其他字符)

ltrim() - 从字符串开头去除空格(或其他字符)。