MySQL에서 PHP의 정수 및 숫자를 유형으로 반환
PDO::ATTR_STRINGIFY_FETCHES를 false로 설정했음에도 불구하고 숫자 열이 발생하는 문제가 발생할 수 있습니다. 여전히 정수나 숫자 대신 문자열로 반환됩니다. 이 동작은 드라이버 구현 문제로 인해 발생하는 경우가 많습니다.
mysqlnd의 차이점
이 문제를 해결하는 열쇠는 mysqlnd를 활용하는 데 있습니다. PHP용 드라이버. php -i를 볼 때 pdo_mysql 섹션에 "mysqlnd"가 없으면 기본 드라이버가 대신 사용되고 있음을 나타냅니다.
mysqlnd 설치
Ubuntu에서는 php5-mysql 대신 php5-mysqlnd. 성공적인 전환을 보장하려면 다음 단계를 따르십시오.
mysqlnd 확인
php5-mysqlnd 설치 시, php -i는 이제 pdo_mysql 섹션에서 "mysqlnd"를 명시적으로 언급해야 합니다.
PDO 설정
올바른 데이터 처리를 보장하려면 다음 PDO 속성을 설정하세요.
반환된 값
올바른 드라이버와 설정을 사용하면 숫자 열이 적절한 PHP 유형으로 반환됩니다.
의 경우 예를 들어 다음 데이터는 다음과 같습니다.
+-----------+-----------+----------+-------------+--------------+ | integer_col | double_col | float_col | decimal_col | bigint_col | +-----------+-----------+----------+-------------+--------------+ | 1 | 1.55 | 1.5 | 1.20 | 18446744073709551615 | +-----------+-----------+----------+-------------+--------------+
다음과 같이 반환됩니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!