Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nieprawidłowy numer parametru:parametr nie został zdefiniowany Wstawianie danych

Wystarczy udzielić odpowiedzi — ponieważ ten błąd jest dość powszechny — oto kilka przyczyn:

1) :parameter nazwa nie pasuje do powiązania przez pomyłkę (literówka?). Oto, co się tutaj wydarzyło. Ma :alias w instrukcji SQL, ale powiązany :username . Więc kiedy próbowano powiązać param, Yii/PDO nie mogło znaleźć :username w oświadczeniu sql, co oznacza, że ​​był "jeden parametr krótki" i spowodował błąd.

2) Całkowicie zapomniałem dodać bindValue() dla parametru. Jest to łatwiejsze w innych konstrukcjach Yii, takich jak $critera , gdzie masz tablicę lub parametry ($criteria->params = array(':bind1'=>'test', ':bind2'=>'test) ).

3) Dziwne konflikty z CDataProvider Pagination i/lub sortowaniem podczas używania together i joins . Nie ma konkretnego, łatwego sposobu na scharakteryzowanie tego, ale podczas korzystania ze złożonych zapytań w CDataProviders miałem dziwne problemy z porzucaniem parametrów i pojawianiem się tego błędu.

Jednym z bardzo pomocnych sposobów rozwiązywania tych problemów w Yii jest włączenie rejestrowania parametrów w twoim pliku konfiguracyjnym. Dodaj to do swojej db tablica w pliku konfiguracyjnym:

'enableParamLogging'=>true,

I upewnij się, że CWebLogRoute trasa jest ustawiona w Twoim log Sekcja. Spowoduje to wydrukowanie zapytania, które dało i błąd, oraz wszystkich parametrów, które próbowało powiązać. Bardzo pomocne!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL nie działa na:mysql BŁĄD 1524 (HY000):Wtyczka 'auth_socket' nie jest załadowana

  2. Zarządzanie bazą danych MySQL w cPanel za pomocą PHPMyAdmin

  3. Jak działa funkcja REGEXP_INSTR() w MySQL

  4. Użyj relacyjnych baz danych MySQL w Fedorze 14

  5. JSON_SET() – Wstaw lub zaktualizuj wartości w dokumencie JSON w MySQL