>데이터 베이스 >MySQL 튜토리얼 >PDO에서 MySQL 정수가 문자열로 반환되는 이유는 무엇이며, 이를 숫자로 검색하려면 어떻게 해야 합니까?

PDO에서 MySQL 정수가 문자열로 반환되는 이유는 무엇이며, 이를 숫자로 검색하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-24 02:32:17557검색

Why are MySQL integers returned as strings in PDO, and how can I retrieve them as numbers?

PDO를 사용하여 MySQL에서 숫자 유형 검색

문제:

PDO를 사용하는 MySQL 데이터베이스에서는 정수 값이 숫자 유형 대신 문자열로 반환됩니다. PDO 클래스 속성 PDO::ATTR_STRINGIFY_FETCHES가 false로 설정된 경우.

답변:

숫자 유형 문제 이해:

데이터베이스가 숫자 값을 문자열로 반환하는 것이 일반적입니다. 이는 MySQL의 기본 드라이버와 같은 일부 데이터베이스 드라이버가 모든 값을 문자열로 처리하기 때문입니다.

문자열화 방지:

값이 문자열로 반환되는 것을 방지하려면 MySQL 네이티브 드라이버(mysqlnd)를 사용해야 합니다. 이 드라이버는 숫자 유형을 포함한 기본 데이터 유형 검색을 지원합니다.

mysqlnd 구성:

mysqlnd를 사용하려면 PDO 연결 옵션 배열에 다음 설정을 추가해야 합니다.

array(
    PDO::ATTR_EMULATE_PREPARES => false
)

예시 코드:

$dsn = 'mysql:host=localhost;dbname=my_db';
$user = 'root';
$pass = 'password';

$pdo = new PDO($dsn, $user, $pass, array(
    PDO::ATTR_EMULATE_PREPARES => false
));

PDO::ATTR_EMULATE_PREPARES를 false로 설정하면 준비된 명령문 에뮬레이션이 꺼지고 mysqlnd가 숫자 값을 올바른 데이터 유형으로 검색할 수 있습니다.

위 내용은 PDO에서 MySQL 정수가 문자열로 반환되는 이유는 무엇이며, 이를 숫자로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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