PHP를 사용하여 MySQL에서 정수 및 숫자 데이터 유형을 올바르게 검색하는 방법
PHP를 사용하여 MySQL 데이터베이스를 쿼리할 때 다음 사항을 확인하는 것이 중요합니다. 정수 및 숫자 데이터 유형은 문자열이 아닌 그대로 반환됩니다. 이는 데이터 무결성 및 다른 서비스와의 호환성을 위해 필수적입니다.
안타깝게도 PHP-MySQL 네이티브 드라이버는 기본적으로 모든 쿼리 결과를 문자열로 변환합니다. 이 문제는 구현 제한이라고 주장하는 사람도 있고 올바르지 않다고 주장하는 사람도 있어 많은 논쟁의 대상이 되어 왔습니다. 그러나 고려해야 할 핵심 요소는 사용되는 드라이버입니다.
해결책: MySQLnd 드라이버 사용
이 문제를 해결하려면 기본 드라이버에서 전환해야 합니다. MySQL 드라이버를 mysqlnd 드라이버로 변경합니다. mysqlnd 드라이버는 정수 및 숫자 유형의 올바른 반환을 지원합니다.
mysqlnd 설치 및 확인 방법
Ubuntu에서는 다음 명령을 사용하여 mysqlnd 드라이버를 설치할 수 있습니다.
sudo apt-get remove php5-mysql sudo apt-get install php5-mysqlnd sudo service apache2 restart
mysqlnd가 사용되고 있는지 확인하려면 php -i의 출력을 확인하세요. 이제 pdo_mysql 섹션에는 mysqlnd에 대한 참조가 포함되어야 합니다.
PDO 설정
또한 다음 PDO 설정이 올바르게 구성되었는지 확인하세요.
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
돌아왔습니다 값
mysqlnd 드라이버가 사용 중이고 적절한 PDO 설정이 적용되면 쿼리 결과는 다음 규칙에 따라 반환됩니다.
예
다음 예는 정수 및 숫자 데이터의 올바른 동작을 보여줍니다. 검색:
$pdo = new PDO(...); $stmt = $pdo->prepare('SELECT * FROM table'); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_OBJ); var_dump($result);
이렇게 하면 다음 속성을 가진 개체가 출력됩니다.
object(stdClass)[915] public 'integer_col' => int 1 public 'double_col' => float 1.55 public 'float_col' => float 1.5 public 'decimal_col' => string '1.20' (length=4) public 'bigint_col' => string '18446744073709551615' (length=20)
위 내용은 PHP를 사용하여 MySQL에서 정수 및 숫자 데이터 유형을 올바르게 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!