>데이터 베이스 >MySQL 튜토리얼 >PHP의 MySQL에서 정수 및 숫자 열을 기본 유형으로 검색하는 방법은 무엇입니까?

PHP의 MySQL에서 정수 및 숫자 열을 기본 유형으로 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-07 05:25:16230검색

How to Retrieve Integer and Numeric Columns as Their Native Types from MySQL in PHP?

MySQL의 정수 및 숫자 열을 PHP의 정수 및 숫자로 어떻게 반환합니까?

PHP에서 MySQL 데이터베이스로 작업할 때 다음 사항을 확인하세요. 정수 및 숫자 열이 올바르게 검색되고 표시되는지가 중요합니다. PHP의 PDO 확장이 이를 수행하는 방법을 제공하지만 MySQL 기본 드라이버를 사용하지 않는 경우 문제가 될 수 있습니다.

정수 열이 문자열로 반환되는 이유

MySQL 네이티브 드라이버는 숫자 값을 정수 및 숫자로 반환하는 기능을 지원하지 않습니다. 이는 기본적으로 모든 열이 문자열로 검색됨을 의미합니다. PDO 플래그 PDO::ATTR_STRINGIFY_FETCHES가 false로 설정된 경우에도 드라이버의 동작은 변경되지 않습니다.

수정 방법

해결책은 mysqlnd PHP용 드라이버. 이 드라이버는 기본 PHP 유형의 정수 및 숫자 값 반환을 지원합니다.

설치

Ubuntu에 mysqlnd 드라이버를 설치하려면 다음 단계를 사용할 수 있습니다.

  1. 이전 MySQL 기본 드라이버 제거: apt-get 제거 php5-mysql
  2. mysqlnd 드라이버 설치: apt-get install php5-mysqlnd
  3. Apache 다시 시작: service apache2 restart

확인

mysqlnd 드라이버가 사용되고 있는지 확인하려면 다음을 실행하세요. php -i. 이제 출력에는 pdo_mysql 섹션에 "mysqlnd"가 포함되어야 합니다.

PDO 설정

다음 PDO 설정이 올바르게 설정되었는지 확인하세요.

  • PDO::ATTR_EMULATE_PREPARES는 다음과 같아야 합니다. false
  • PDO::ATTR_STRINGIFY_FETCHES는 false여야 합니다

반환된 값

mysqlnd 드라이버에서는 다음 반환 유형이 사용됩니다.

  • 부동 소수점 유형 (FLOAT, DOUBLE): PHP 부동 소수점
  • 정수 유형(INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT): PHP 정수
  • 고정 소수점 유형(DECIMAL, NUMERIC): 문자열

mysqlnd 드라이버로 전환한 후 정수 및 숫자 값을 올바르게 검색할 수 있습니다.

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);

$result = $pdo->query('SELECT * FROM table');
$row = $result->fetch(PDO::FETCH_OBJ);

echo $row->integer_col; // 1 (int)
echo $row->double_col; // 1.55 (float)
echo $row->decimal_col; // '1.20' (string)
echo $row->bigint_col; // '18446744073709551615' (string)

위 내용은 PHP의 MySQL에서 정수 및 숫자 열을 기본 유형으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.