私はこのような単純な連結を行っており、$string = $a.' '.$b.' '.$c
null$b
の可能性がある変数です。したがって、$b
が null の場合は$string = $a.' '.' '.$c
であり、MySQL ではそのように見えます。
ただし、エコーすると、 $string が null の場合、$a と $c の間にスペースが 1 つしかなく、$b
不思議なことに空白が 1 つなくなりました。
ここで何が起こっているのか知っている人はいますか?
追記: 60 時間の解析の前に $middlename が null かどうかを確認するのを忘れたため、これを行っています。だから今、私のデータベースには、名前と姓の間に2つのスペースがあるadam c. johnson
ような正しい形式の名前と、間違った形式の名前があります。adam johnson
これらの間違った名前の余分なスペースを 1 つ削除できる方法があれば、問題も解決する可能性があります。
コメントからのコード:
$name = $list["firstname"].' '.$list["middlename"].' '.$list["lastname"];
if (strlen($name)>20) {
//echo $name."<br>";
$name_cut=substr($name,0,20);
$stmt= $conn->stmt_init();
$sql = 'UPDATE ? SET name=replace(name, \'?\', \'?\');';
if ($stmt->prepare($sql)) {
$stmt->bind_param('sss', $table, $name_cut, $name);
$stmt->execute();
}
}