2012-09-25 2 views
0

PHP의 PDO를 사용하여 MySQL 데이터베이스와 상호 작용합니다. 현재 다음 코드를 사용하여 이메일 주소가 항상 소문자인지 확인하여 삽입/업데이트 할 때 중복되거나 검색 할 때 이메일을 찾을 수 없습니다.PHP PDO로 MySQL 데이터베이스를 검색/삽입/업데이트 할 때 이메일을 소문자로 처리

누군가가 이것이 괜찮은지 말해 줄 수 있습니까? 아니면 소문자로 변환하는 SQL 또는 PHP 방법을 사용하는 것이 더 낫지는 않습니까?

$sql = "UPDATE table SET name=:name, LOWER(email)=:email WHERE id = :id"; 
$st->bindValue(":email", strtolower($this->email), PDO::PARAM_STR); 
+0

나는 항상 같은 종류의 문제에 대해 특별한 이유없이 UPPER()를 사용하는 나 외에는 아무 것도 볼 수 없다 .-)) – Najzero

+0

SQL 버전을 선택했다면, 이것은 정확하다 : '$ sql = "UPDATE 테이블 SET name = : name, email = LOWER (: email) WHERE id = : id";' – mewm

답변

2

당신은 LOWER(email)에 쓸 수 없습니다 당신은 항상 어쨌든 PHP를 통해 낮은 맡았다 버전을 삽입하기 때문에 그것은 또한 필요합니다. 그냥 email으로 변경하십시오.

1

가장 좋은 방법은 데이터를 데이터베이스에 입력하기 전에 항상 준비하는 것입니다. 그래서 다른 말로하면 PHP에서 모든 경우가 바뀝니다.

은이 경우 사용할 수 있습니다 : 나는 당신의 사용과 완벽한 이잖아 참조

strtolower($str)

합니다. 괜찮습니다. 여기서 멈출 수 있습니다.

관련 문제