DSTR3
DSTR3

Reputation: 31

MYSQL Returns FAIL Always

This piece of code in C++ queries a MYSQL online database. It seems that it always returns 0. Even when I know the answer should be 1 PASS. I'm not getting an errors when it runs.

    if ( bShowTCP )
    {
      printf("\n -------------------- // -------------------- ");
      printf("\n TCP Header:");

      int *addressValue = new int();
      char *address = LIP; 
      inet_pton(AF_INET, address, addressValue);
      if (ip_header->source_ip == *addressValue)
      {
         printf("\n   Source      IP: %s", "0.0.0.0");
         printf("\n   Destination IP: %s", ipDest);
      }
      else
      {
         printf("\n   Source      IP: %s", ipSrc);
         printf("\n   Destination IP: %s", ipDest);
         (mysql_real_connect
         (conn,"<hostname>","<db>","<user>","<pass>",0,NULL,0) !=0);
         (mysql_query(conn,"SELECT COUNT(*) FROM tblURLIP WHERE IP = 'ipSrc' And            IPStatus = '1' And IPMax = '0'"));
         my_ulonglong i = 0;
         res_set = mysql_store_result(conn);
         my_ulonglong numrows = mysql_num_rows(res_set);
         LEGIT = mysql_fetch_row(res_set);
         if (atoi(LEGIT[i]) == 1)
         {
           printf("\n PASS: %s\n",LEGIT[i]);
           mysql_free_result(res_set);
         }
         else
         {
           printf("\n FAIL! %s\n",LEGIT[i]);
           mysql_free_result(res_set);
         }             
      }
    }

Upvotes: 0

Views: 122

Answers (1)

user149341
user149341

Reputation:

There are no variables being passed to your MySQL query -- the WHERE IP = 'ipSrc' is literally searching for rows where IP has the value "ipSrc", not ones where it's equal to the value of the string variable called ipSrc. You will need to either embed the value of ipSrc into a string using a function like sprintf(), or use a prepared statement and bind ipSrc to a placeholder variable.

Upvotes: 1

Related Questions