며칠 전에 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에서 문자열을 받아들이도록 내 코드를 리팩터링해야합니까?
감사합니다.
검색어에 mysqli 또는'PDO'를 사용하고 있습니까? –
@TomUdding 나는 PDO와 함께 Laravel 5.4를 사용하고 있습니다. – Jachinair
테이블의'id' 필드에 사용한 데이터 유형은 무엇입니까? –