さまざまなデータベース値、特殊文字などの処理に問題があります。
Postgresデータベースを照会するときにYii php、特にCDbCriteriaを使用していますが、エントリの前後に空白があるエントリに問題があります。
私は持っている:
$criteria = new CDbCriteria;
$criteria->compare('first_name',trim($name) , false, 'OR');
$criteria->compare('surname', trim($name), false, 'OR');
$person = Name::model()->find($criteria);
上記のコードは、入力フォームから $name 変数を指定して、一致する行をデータベースで検索することを想定しています。データベース テーブルの姓または名に空白が含まれていない場合、これは完全に機能します。
例えば:
$name = "Richard";
ただし、データベースでは、first_name の値は次のとおりです。
「[余白]リチャード[余白]」
空白を含む 'Richard'がデータベースにあるため、"Richard" が見つからないため、$person は null を返します。ただし、適切な動作は、それらが基本的に同じ名前であるため、正しく一致する必要があることです (すべてのエントリをトリミングする必要があるため、データベースに空白を含めることは良いことではないことを知っていますが、アプリケーションはこれを処理するのに十分柔軟でなければなりません) )。この問題を解決するにはどうすればよいですか? どうもありがとう!