2015-06-22 2 views
1

Я получаю эту ошибку:ColdFusion 9, Params не найден при использовании cfscript запроса

Параметр «user_id И league_id» не найден в списке параметров указанного

Я передаю их, и я могу см. их в дампе, помещенном внутри функции.

вот то, что происходит в ...

ac = { 
    league_id = 1 
    ,user_id = 3 
    ,score1 = 14 
    ,score2 = 10 
}; 

это дамп, который бросает ошибку ....

writedump(Game.saveGame(argumentcollection = ac)); 

Вот функция Game.saveGame

public any function saveGame(required numeric league_id, required numeric user_id, required numeric score1, required numeric score2) { 

    // writeDump(var=arguments); // this dump shows league_id & user_id... 
    var sql  = ''; 
    var tmp  = ''; 
    var r  = ''; 
    var q  = new query(); 

     q.setDatasource(this.dsn); 

     q.addParam(
       name = 'league_id' 
       ,value = '#val(arguments.league_id)#' 
       ,cfsqltype = 'CF_SQL_BIGINT' 
      ); 
     q.addParam(
       name = 'user_id' 
       ,value = '#val(arguments.user_id)#' 
       ,cfsqltype = 'CF_SQL_BIGINT' 
      ); 
     q.addParam(
       name = 'score1' 
       ,value = '#val(arguments.score1)#' 
       ,cfsqltype = 'CF_SQL_SMALLINT' 
      ); 
     q.addParam(
       name = 'score2' 
       ,value = '#val(arguments.score2)#' 
       ,cfsqltype = 'CF_SQL_SMALLINT' 
      ); 

     sql = 'INSERT INTO 
       games 
       (
        user_id 
        ,league_id 
        ,score1 
        ,score2 
       ) 
      VALUES 
       (
        :user_id 
        ,:league_id 
        ,:score1 
        ,:score2 
       ) 
     '; 

     tmp = q.execute(sql = sql); 

     r = tmp.getPrefix(q); 

     q.clearParams(); 

    return r; 

} 

Вот некоторая история проблемы - Я пишу это локально, и моя система работает CF 11 .2 - все работает отлично ... Тем не менее, мне пришлось разместить его на сервере CF 9.02, и именно тогда эта ошибка появилась - я не могу ее воссоздать в своей системе, хотя, я действительно помню эту ошибку раньше, но для жизнь меня не могу найти, как я решил это тогда ....

Любая помощь или понимание оценены.

Другого PARAMS Windows Server, MySQL 5.5, Apache 2.2

+0

Я не могу определить, что случилось с вашим кодом, но вы могли бы возможно, немного почистить вещи. Не нужно устанавливать каждое «свойство» по запросу отдельно: http://blog.adamcameron.me/2014/01/using-querycfc-doesnt-have-to-be-drama.html –

+0

Thx Adam - я попробую и дам вам знать - полностью оцените синтаксис «чистого». – jpmyob

ответ

1

Адам писал:

I can't spot what's wrong with your code, but you could perhaps clean things up a bit. There's no need to set each "property" on the query separately: blog.adamcameron.me/2014/01/

После порядковых пар, вместо имени пар, и переходящее в массиве Params в сгущенном формат, решил мою проблему.

Я могу поиграть с атрибутом имени и посмотреть, насколько это точно ... или я могу просто решить это как решение.

Теперь, чтобы изменить все мои запросы к скрипту !!!!! (я желаю его статья вышла на Google, когда я смотрел в синтаксис query.cfc. :(

Благодаря кучу Адам!

+0

Круто. Рад, что помогло. –

Смежные вопросы