> 데이터 베이스 > MySQL 튜토리얼 > PHP를 사용하여 MySQL에서 정수 및 숫자 데이터 유형을 올바르게 검색하는 방법은 무엇입니까?

PHP를 사용하여 MySQL에서 정수 및 숫자 데이터 유형을 올바르게 검색하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-08 21:02:14
원래의
795명이 탐색했습니다.

How to Properly Retrieve Integer and Numeric Data Types from MySQL Using PHP?

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 설정이 적용되면 쿼리 결과는 다음 규칙에 따라 반환됩니다.

  • 부동 소수점 유형( FLOAT, DOUBLE)은 PHP 부동 소수점으로 반환됩니다.
  • 정수 유형(INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT)는 PHP 정수로 반환됩니다.
  • 고정 소수점 유형(DECIMAL, NUMERIC)은 PHP 문자열로 반환됩니다.

다음 예는 정수 및 숫자 데이터의 올바른 동작을 보여줍니다. 검색:

$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿