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

Số tham số không hợp lệ:tham số không được xác định Chèn dữ liệu

Chỉ để cung cấp câu trả lời - vì lỗi này khá phổ biến - đây là một vài nguyên nhân:

1) Tham số :parameter tên không khớp với ràng buộc do nhầm lẫn (lỗi đánh máy?). Đây là những gì đã xảy ra ở đây. Anh ấy có :alias trong câu lệnh SQL, nhưng bị ràng buộc :username . Vì vậy, khi liên kết tham số được thử, Yii / PDO không thể tìm thấy :username trong câu lệnh sql, nghĩa là "thiếu một tham số" và đã xảy ra lỗi.

2) Hoàn toàn quên thêm bindValue() cho một tham số. Điều này dễ thực hiện hơn trong Yii các cấu trúc khác như $critera , nơi bạn có một mảng hoặc tham số ($criteria->params = array(':bind1'=>'test', ':bind2'=>'test) ).

3) Xung đột kỳ lạ với CDataProvider Pagination và / hoặc Sắp xếp khi sử dụng togetherjoins . Không có cách cụ thể và dễ dàng để mô tả điều này, nhưng khi sử dụng các truy vấn phức tạp trong CDataProviders, tôi đã gặp vấn đề kỳ lạ với việc các thông số bị giảm và lỗi này xảy ra.

Một cách rất hữu ích để khắc phục những sự cố này trong Yii là bật ghi thông số trong tệp cấu hình của bạn. Thêm cái này vào db của bạn mảng trong tệp cấu hình của bạn:

'enableParamLogging'=>true,

Và đảm bảo rằng CWebLogRoute tuyến đường được thiết lập trong log của bạn tiết diện. Thao tác này sẽ in ra truy vấn đã đưa ra và lỗi cũng như tất cả các tham số mà nó đang cố gắng liên kết. Rất hữu ích!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn thiết kế cơ sở dữ liệu cho sự kiện lịch và lời nhắc trong MySQL

  2. Thư viện không được tải:lỗi libmysqlclient.16.dylib khi cố gắng chạy 'máy chủ rails' trên OS X 10.6 với đá quý mysql2

  3. Hàm không xác định mysql_connect ()

  4. Tổng số ổ khóa vượt quá kích thước bảng khóa

  5. MySQL:Chèn bản ghi nếu không tồn tại trong bảng