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 애플리케이션의 처리가 더 쉬워집니다.
문제 해결
여러 가지 방법을 사용하여 문자열화된 정수를 다시 변환할 수 있습니다. 의도한 정수 데이터 유형으로:
$id = (int) $row['userid']; // Equivalent to intval($row['userid'])
$result = $mysqli->query("SELECT userid AS INT FROM DB WHERE name='john'");
다음 솔루션 중 하나를 통합하여 코드에 추가하면 MySQL 데이터베이스에서 검색된 정수 필드가 PHP 애플리케이션 내에서 정수로 올바르게 처리되는지 확인할 수 있습니다.
위 내용은 MySQL 정수 필드가 PHP에서 문자열로 검색되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!