Mysql
 sql >> база данни >  >> RDS >> Mysql

Невалиден номер на параметъра:параметърът не е дефиниран. Вмъкване на данни

Само за да дадем отговор - тъй като тази грешка е доста често срещана - ето няколко причини:

1) :parameter името не съвпада с обвързването по погрешка (печатна грешка?). Ето какво се случи тук. Той има :alias в SQL израза, но обвързан :username . Така че, когато се направи опит за свързване на параметри, Yii/PDO не можа да намери :username в оператора sql, което означава, че е бил "един параметър кратък" и е довел грешка.

2) Напълно забравих да добавите bindValue() за параметър. Това е по-лесно да се направи в други конструкции на Yii като $critera , където имате масив или параметри ($criteria->params = array(':bind1'=>'test', ':bind2'=>'test) ).

3) Странни конфликти с CDataProvider Pagination и/или Сортиране при използване на together и joins . Няма конкретен, лесен начин да се характеризира това, но когато използвам сложни заявки в CDataProviders, имах странни проблеми с отпадането на параметрите и възникването на тази грешка.

Един много полезен начин за отстраняване на тези проблеми в Yii е да да активирате регистрирането на параметри във вашия конфигурационен файл. Добавете това към вашия db масив във вашия конфигурационен файл:

'enableParamLogging'=>true,

И се уверете, че CWebLogRoute маршрутът е настроен във вашия log раздел. Това ще разпечата заявката, която е дала и грешката, и всички параметри, които се опитва да обвърже. Супер полезно!



  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 еквивалентът на STUFF() в SQL Server?

  2. Разделете низ и преминете през стойности в MySql процедура

  3. MySQL:Активирайте LOAD DATA LOCAL INFILE

  4. Каква е максималната дължина на данните, които мога да поставя в BLOB колона в MySQL?

  5. count(*) и count(column_name), каква е разликата?