Re: success return from mysql_query() when error return was expected

2009-04-09 Thread Thomas Spahni

On Wed, 8 Apr 2009, Pete Wilson wrote:


Hi everyone --

I'm a MySQL noob. I have MySQL queries in my C code and I was surprised 
to find I'm getting a success return from:


 mysql_query(pmysql, select * from usrs where(usr=\illegal name\);

In this table called usrs, usr is the primary key and the engine is 
myisam. I expected an error return from this query on illegal name, 
which is not in the table.


An error is not returned until I call:

 prow = mysql_fetch_row(pmysqlres));

which returns NULL, which is great.

If I run that same select from the command line, I see:

 mysql select * from usrs where (usr=illegal name);
 Empty set (0.00 sec)

My question, finally: Is this response to my program call expected and 
normal for MySQL? I suppose it is, but I just want to make sure that the 
behavior is OK, that indeed the program call to mysql_query(select ...) 
must always in these circumstances return success.


Thanks!

-- Pete Wilson


Hi Pete

I suspect that illegal name means that this value is not existing in the 
table. Right?


But this query is perfectly correct and should not throw an error. It's 
like


select * from table where 1 = 0;

which returns nothing, the correct answer.

Tom


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org



success return from mysql_query() when error return was expected

2009-04-08 Thread Pete Wilson


Hi everyone --

I'm a MySQL noob. I have MySQL queries in my C code and I was surprised to find 
I'm getting a success return from:

  mysql_query(pmysql, select * from usrs where(usr=\illegal name\);

In this table called usrs, usr is the primary key and the engine is myisam. 
I expected an error return from this query on illegal name, which is not in 
the table.

An error is not returned until I call:

  prow = mysql_fetch_row(pmysqlres));

which returns NULL, which is great. 

If I run that same select from the command line, I see:

  mysql select * from usrs where (usr=illegal name);
  Empty set (0.00 sec)

My question, finally: Is this response to my program call expected and normal 
for MySQL? I suppose it is, but I just want to make sure that the behavior is 
OK, that indeed the program call to mysql_query(select ...) must always in 
these circumstances return success.

Thanks!

-- Pete Wilson


  

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/mysql?unsub=arch...@jab.org