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

mysqli_stmt ::bind_param () - chỉ định một kiểu dữ liệu khác hơn s cho mỗi tham số

Lần duy nhất tôi thấy rằng việc sử dụng tham số số nguyên là quan trọng trong LIMIT mệnh đề.

SELECT
...
LIMIT ?, ?

MySQL không chấp nhận các ký tự chuỗi được trích dẫn trong ngữ cảnh này và không chấp nhận các tham số có kiểu chuỗi. Bạn phải sử dụng một số nguyên.

Xem Truy vấn PDO được tham số hóa và Mệnh đề `LIMIT` - không hoạt động cho các thử nghiệm của tôi về điều này. Đó là một câu hỏi về PDO và tôi đã không kiểm tra mysqli, nhưng tôi tin rằng đó là một yêu cầu MySQL phía máy chủ để sử dụng các tham số số nguyên trong trường hợp này. Vì vậy, nó cũng sẽ áp dụng cho mysqli.

Trong tất cả các trường hợp khác (AFAIK), MySQL có thể chuyển đổi chuỗi thành số nguyên bằng cách đọc các chữ số đứng đầu trong chuỗi và bỏ qua bất kỳ ký tự nào sau đây.

@Dharman trong một bình luận bên dưới đề cập đến sự hỗ trợ của MySQL cho các số nguyên trong ORDER BY :

SELECT
...
ORDER BY ?

Một số nguyên trong ORDER BY có nghĩa là sắp xếp theo cột ở vị trí đó, không phải theo giá trị không đổi của số:

SELECT
...
ORDER BY 1 -- sorts by the 1st column

Nhưng một giá trị chuỗi tương đương chứa số đó không hoạt động giống nhau. Nó sắp xếp theo giá trị không đổi của chuỗi, có nghĩa là mọi hàng đều được gắn và thứ tự sắp xếp sẽ tùy ý.

SELECT
...
ORDER BY '1' -- sorts by a constant value, so all rows are tied

Do đó, đây là một trường hợp khác mà kiểu dữ liệu cho tham số truy vấn là quan trọng.

Mặt khác, sử dụng số thứ tự để sắp xếp theo cột ở vị trí đó trong ORDER BY hoặc GROUP BY không được dùng nữa và chúng ta không nên dựa vào cách sử dụng SQL đó.



  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 cách nào để chèn ngày vào mysql dưới dạng tham số?

  2. Laravel - Số tham số không hợp lệ:tham số không được xác định

  3. Sự khác biệt giữa mysql và mysqli

  4. Làm cách nào để khắc phục các kiểu trường số nguyên không dấu không được hỗ trợ trong MS SQL?

  5. Chèn một văn bản tiếng Ả Rập MySQL