Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel Eloquent find trả về null

Điều này là do các số bắt đầu bằng 0 được PHP coi là một bát phân, theo: http://php.net/manual/en/language.types.integer.php

Có vẻ như PHP chuyển đổi số thành số thập phân trước khi thực hiện truy vấn MySQL, điều đó có nghĩa là truy vấn được tạo với một số không chính xác.

Ví dụ:

Support::find(02155);

Trở thành:

'SELECT * FROM mytable WHERE id = 1133'

Giải pháp

Tôi đã giải quyết vấn đề này bằng cách gõ số thành một số nguyên bằng cách sử dụng (int) trước khi tôi sử dụng nó với phương pháp tìm Eloquents. Nó cũng sẽ hoạt động nếu bạn chuyển số dưới dạng chuỗi (tức là trong dấu ngoặc kép), như sau:

Support::find('02155');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tạo một bảng mysql với các cột ngày và giờ?

  2. Sắp xếp ngẫu nhiên ổn định / có thể lặp lại (MySQL, Rails)

  3. MySQL 5.6 InnoDB Tìm kiếm toàn văn bản

  4. MySQL SELECT n bản ghi dựa trên GROUP BY

  5. Làm tròn ngày giờ MYSQL thành khoảng thời gian sớm nhất 15 phút tính bằng mili giây (PHP)