2017-03-17 1 views
3

며칠 전에 I asked a question about a bug I found in Laravel입니다.DB는 int 대신에 문자열을 반환합니다 (PHP-7.1/Laravel의 경우 mysqlnd)

문제를 해결하기 위해 내 서버에 php5-mysqlnd를 설치했습니다.

오늘, 필자는 내 응용 프로그램을 최신 PHP 7.1. *로 업그레이드했습니다. 벌레가 다시 돌아 오는 것을 제외하고는 모든 것이 올바르게 작동합니다. 즉, 데이터베이스의 정수가 문자열로 반환되어 엄격한 비교가 실패합니다.

PHP 7.1 용 mysqlnd 패키지를 찾으려고했지만 아무 것도 없습니다 (아직?). 서버에서 => 5

출력

"ID"그러나 mysqlnd는 ...하지만

은 phpinfo() 로컬 호스트에

PHP Version => 7.1.3-2+0~20170315222009.20+jessie~1.gbpc7e7dd 
System => Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 

mysqlnd 
mysqlnd => enabled 
Version => mysqlnd 5.0.12-dev - 20150407 - $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $ 

pdo_mysql 
PDO Driver for MySQL => enabled 
Client API version => mysqlnd 5.0.12-dev - 20150407 - $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $ 

출력을 활성화 보인다 :

,363,210

"ID"=> "5"

1/내가 보일 것 다른 뭔가가 있나요?

2/일반적으로 int를 예상하는 대신 DB에서 문자열을 받아들이도록 내 코드를 리팩터링해야합니까?

감사합니다.

+0

검색어에 mysqli 또는'PDO'를 사용하고 있습니까? –

+0

@TomUdding 나는 PDO와 함께 Laravel 5.4를 사용하고 있습니다. – Jachinair

+0

테이블의'id' 필드에 사용한 데이터 유형은 무엇입니까? –

답변

2

한숨, 나 바보 야! 적어도 나는 오늘 무언가를 배웠다.

phpinfo()는 Apache가 아닌 콘솔의 PHP 버전에서 가져온 것입니다. php7.1이 나오고 mysqlnd가 아파치에로드되지 않았다.

모든 것이 정상입니다 ...

+0

주의 PHP는 많은 ini 파일을 가질 수 있습니다. –

관련 문제