Ошибка в моем CFQUERYPARAM - PullRequest
       67

Ошибка в моем CFQUERYPARAM

0 голосов
/ 07 февраля 2012

Я уверен, что я делаю это ужасно неправильно с CFQUERYPARAM, но вот что я пытаюсь сделать:

<CFQUERY DATASOURCE="tr3" NAME="qryPartner">
  SELECT *
  FROM  UsrMatchActualTR2
  WHERE 
    session = #userSess# 
   AND 
    user_id = #userID# 
   AND 
    site=<cfqueryparam value="#userSite#" cfsqltype="CF_SQL_VARCHAR" maxlength="5">
</CFQUERY>

И я получаю ошибку

Ошибка выполнения запроса к базе данных.

В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'site = UTD' в строке 3

Ответы [ 3 ]

4 голосов
/ 07 февраля 2012

Я подозреваю, что ваша переменная userID пуста, что вызывает "дыру" в вашей структуре запроса. Вы должны действительно использовать CFQUERYPARAM для всех ваших аргументов, включая userID и userSess.

2 голосов
/ 07 февраля 2012

Во-первых, убедитесь, что ваши типы данных верны, является ли столбец сайта varchar / string? Также попробуйте использовать cfqueryparam для всех переменных.

<CFQUERY DATASOURCE="tr3" NAME="qryPartner">
    SELECT * FROM  UsrMatchActualTR2
    WHERE session = <cfqueryparam value="#userSess#" cfsqltype="cf_sql_varchar" />
    AND user_id = <cfqueryparam value="#userID#"  cfsqltype="cf_sql_integer" />
    AND site = <cfqueryparam value="#userSite#" cfsqltype="cf_sql_varchar" maxlength="5" />
</CFQUERY>
1 голос
/ 07 февраля 2012

Попробуйте заменить "двойные кавычки" на значение параметра

WHERE session = #userSess# AND user_id = #userID# AND site=<cfqueryparam  value="#userSite#"  cfsqltype="CF_SQL_VARCHAR" maxlength="5">

с «одинарными кавычками»

WHERE session = #userSess# AND user_id = #userID# AND site=<cfqueryparam value='#userSite#'  cfsqltype="CF_SQL_VARCHAR" maxlength="5">

Я видел дифференциацию CF. Кроме того, вы должны использовать <cfqueryparam> для всех ваших переменных. Если у вас все еще есть проблемы, попробуйте оценить, что хранится в переменных userSess, userID и site, используя <cfdump> and <cfabort>

...