Hi!

This is probably more of a C inadequacy than a MySQL problem.  I'm playing
around with C with MySQL (I have to date only interfaced with it in
PHP) and I was curious if anyone had any example code which illustrates
how you would write functions which return mysql data.

For example, in PHP I might write a simple function  like this:

function get_specific_db_column($dbname, $tblname, $pk, 
                                $pk_val, $colname)
{

  $sql = "SELECT $colname as val
            FROM $dbname.$tblname
           WHERE $pk = '$pk_val'";
  $r = mysql_query($sql);
  while ($row = mysql_fetch_array($r))
    $array[] = $row;
  return $array;

}

But, in C I haven't figured out how to do things like navigate passing the
MYSQL *mysql init pointer into the function for mysql_query etc.

I can however get a program WITHOUT functions (ie, hardcode the
query) compiled and working:

// Simple test application
// for the C Mysql API

#include <sys/time.h>
#include <stdio.h>
#include <mysql.h>

#define def_host_name NULL
#define def_user_name "root"
#define def_password  NULL
#define def_db_name "reflectivity"

int main (char **arg)
{

  MYSQL_RES *result;
  MYSQL_ROW row;
  MYSQL *connection, mysql;
  int state;
  char colsize=10, rowsize=10;

  // connect to the mysql database on internal
  mysql_init(&mysql);
  connection = mysql_real_connect(&mysql, def_host_name,
                     def_user_name,
                     def_password,
                     def_db_name,
                     0,             /*port defaut*/
                     NULL,          /*socket default*/
                     0);            /*flag*/
  if (connection == NULL) // check for a connection error
  {
    // print the error message
    printf(mysql_error(&mysql));
    return 1;
  }
  state = mysql_query(connection,"SELECT * from reflectivity.accounts");
  if (state != 0)
  {
    printf(mysql_error(connection));
    return 1;
  }
  // you must call mysql_store_result before we can issue anything else
  result = mysql_store_result(connection);
  printf("Rows: %d\n", mysql_num_rows(result));
  // process each row in the result set
  while ((row = mysql_fetch_row(result)) != NULL)
    printf("%s - %s - %s - %s - %s\n",row[0],row[1],row[2],row[3],row[4]);
  // free some memory
  mysql_free_result(result);
  // close the mysql connection
  mysql_close(connection);
  printf("Done.\n");
}

Ny guess is that if I just see a couple of examples which mimic some of
the functionality of the above PHP function in C I'll be able to write
them without a problem.  

Any pointers on where to look?

Thanks!
Seth


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to