我在Zend应用程序中面临一个奇怪的问题:
我的模型是这样的:
public function checkEmailAndProfileName($emailId, $proName) {
$select = $this->select()
->where('email_address = ?', $emailId)
->where('profile_name = ?', $proName);
$result = $this->getAdapter()->fetchRow($select);
}
假设我在数据库中有一行,电子邮件地址为“test@test.com”,个人资料名称为“profilename”。
现在,如果我将以下参数传递给模型:
$modelObj->checkEmailAndProfileName("test@test.com", "profilename");
我的工作正常。
现在如果我通过:
$modelObj->checkEmailAndProfileName("test@test.com", "ProfileNAME");
然后它应该返回false,但奇怪的是它返回“test@test.com”,“profilename”行。我不想要......
任何人都可以通过告诉我做错了什么来帮助我......?
提前致谢...
答案 0 :(得分:2)
你需要的是BINARY
的mysql
在BINARY
子句中使用WHERE
强制匹配二进制排序规则,在英语中表示它与字符代码匹配实际字符,而不是字符是否被视为等效。
public function checkEmailAndProfileName($emailId, $proName) {
$select = $this->select()
->where('email_address = ?', $emailId)
->where('BINARY profile_name = ?', $proName);
$result = $this->getAdapter()->fetchRow($select);
}