我在处理各种数据库值、特殊字符等方面遇到了麻烦。
我在查询 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 变量。如果数据库表中的first_name 或 surname没有空格,这将非常有效。
例如:
$name = "Richard";
但在数据库中,first_name 的值为:
“[空白]理查德[空白]”
然后 $person 将返回 null,因为无法找到“Richard”,因为带有空格的“Richard”在数据库中。然而正确的行为是它应该正确匹配,因为它们基本上是相同的名称(我知道在数据库中有空格不是一件好事,因为每个条目都应该被修剪,但是应用程序应该足够灵活来处理这个)。我该如何解决这个问题?非常感谢!