1

私はこのような単純な連結を行っており、$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();
   }
}
4

2 に答える 2

3

空白の処理はhttp://www.w3.org/TR/html4/struct/text.html#h-9.1で定義されています(HTML4仕様-HTML5仕様には含まれていないようですが、同じルール)。

特に、ユーザーエージェントは、出力の単語間スペースを生成するときに、入力の空白シーケンスを折りたたむ必要があります。これは、言語情報がない場合でも実行でき、実行する必要があります

実際のスペースを印刷する場合は、印刷する内容を、スタイル<pre>のある要素の中に入れるか、スペースの代わりにwhite-space: pre改行しないスペースエンティティ()を使用します。&nbsp;

于 2012-11-02T16:20:48.833 に答える
1

$list["middlename"]がNULLかどうかを確認します

if ($list["middlename"]==NULL){ 
  $ name = $list["firstname"].' '.$list["lastname"];
}
else{
     $ 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();
   }
}
于 2012-11-02T16:42:21.623 に答える