> 백엔드 개발 > PHP 튜토리얼 > MySQL 정수 필드가 PHP에서 문자열로 검색되는 이유는 무엇입니까?

MySQL 정수 필드가 PHP에서 문자열로 검색되는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-10 13:49:11
원래의
188명이 탐색했습니다.

Why are MySQL integer fields retrieved as strings in PHP?

PHP에서 문자열로 검색된 MySQL 정수 필드: 변환 풀기

PHP를 사용하여 MySQL 데이터베이스에서 데이터를 가져올 때 다음과 같은 문제가 발생할 수 있습니다. 정수 필드가 문자열로 반환되는 당황스러운 상황입니다. 이러한 예상치 못한 동작은 PHP의 데이터 처리 특성에서 비롯됩니다.

이 현상을 이해하려면 다음 시나리오를 고려하십시오.

// Query the database and retrieve the user's ID
$result = $mysqli->query("SELECT userid FROM DB WHERE name='john'");
로그인 후 복사

쿼리가 정수인 사용자 ID를 성공적으로 검색한다고 가정합니다. 데이터베이스에서 다음 코드는 검색된 값을 정수 변수로 저장한다고 예상할 수 있습니다.

$row = $result->fetch_assoc();
$id = $row['userid'];
로그인 후 복사

그러나 다음과 같은 경우 gettype($id)를 사용하여 $id 변수의 데이터 유형을 확인하면 "문자열"이 반환된다는 사실에 놀랄 것입니다.

왜 이런 일이 발생합니까?

문제의 핵심은 PHP가 MySQL 데이터베이스에서 검색된 데이터를 처리하는 방식에 있습니다. 기본적으로 PHP는 데이터베이스의 원래 데이터 유형에 관계없이 검색된 모든 데이터를 문자열로 변환합니다. 이렇게 하면 데이터의 균일한 처리가 보장되어 PHP 애플리케이션의 처리가 더 쉬워집니다.

문제 해결

여러 가지 방법을 사용하여 문자열화된 정수를 다시 변환할 수 있습니다. 의도한 정수 데이터 유형으로:

  • 명시적 유형 변환: 사용 (int) 연산자 또는 intval() 함수:
$id = (int) $row['userid']; // Equivalent to intval($row['userid'])
로그인 후 복사
  • 데이터 유형 선언: 쿼리에서 MySQL의 AS 문을 활용하여 데이터 유형을 명시적으로 지정합니다. 반환된 필드:
$result = $mysqli->query("SELECT userid AS INT FROM DB WHERE name='john'");
로그인 후 복사

다음 솔루션 중 하나를 통합하여 코드에 추가하면 MySQL 데이터베이스에서 검색된 정수 필드가 PHP 애플리케이션 내에서 정수로 올바르게 처리되는지 확인할 수 있습니다.

위 내용은 MySQL 정수 필드가 PHP에서 문자열로 검색되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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