We generally uses ColdFusion tags in our coding. But sometimes we prefer to use script version of that instead the tag. Also in ColdFusion 9.0.1 have a script version code for almost every tags.
In ColdFusion 9.0.1 the script version of cfquery has a bug as follows.
Let our table name is "USERS(USER_ID, FIRST_NAME, LAST_NAME, isDELETED)", which contains the users information.
If I want to get the data of a single user then I will write.
<cfscript> variables.q = new query(); variables.q.setdatasource("TrackBug_New"); variables.q.setSql('SELECT USERID, FIRST_NAME, LAST_NAME FROM USERS WHERE USER_ID = :userID AND isDELETED = 0'); //Set value in addParam equivalent to cfqueryparam variables.q.addParam(name="userID", value="1", CFSQLTYPE="CF_SQL_INT"); //Executes the query and Extracts the result from the query object variables.qry_getUser = variables.q.execute().getresult(); //To show the result WriteDump(variables.qry_getUser);</cfscript>But unfortunately we will get the error message :=============================================================Error Executing Database QueryParameter 'userID AND' not found in the list of parameters specified=============================================================Cause Of Problem:While setting the variable ":userID" to the query string I have placed a line break after that variable and which is the culprit. If we will place a space character after the variable then it will
not create any problem. Again for any other character other than space character
will cause the problem, like if we replace tab instead of space then we will also face the same problem.
Moral:When you are using any variable in the query string then always give a space character after the variable.
For this problem I have just wasted 2-3 hr. So I thought it will help you :).