Just in case this helps anyone else.

I've just tried DBD::mysql for the first time and it failed to compile with gcc
2.95.3. It appears there are functions in dbdimp.c which declare variables
after code in:


1. dbd_st_prepare, code in #if before searchptr etc declared:

{
  int i;
  SV **svp;
  D_imp_dbh_from_sth;

#if MYSQL_VERSION_ID >= SERVER_PREPARE_VERSION
 /* Set default value of 'mysql_emulated_prepare' attribute for sth from dbh */
  imp_sth->use_server_side_prepare= imp_dbh->use_server_side_prepare;
  if (attribs)
  {
    svp= DBD_ATTRIB_GET_SVP(attribs, "mysql_emulated_prepare", 22);
    imp_sth->use_server_side_prepare = (svp) ?
      SvTRUE(*svp) : imp_dbh->use_server_side_prepare;
  }

  char *searchptr;
  int col_type;
  int limit_flag= 0;
  int statement_length= 0;
  MYSQL_BIND *bind, *bind_end;
  imp_sth_phb_t *fbind;

2. same as 1, in mysql_st_internal_execute

  else
  {
    D_imp_sth(h);
    D_imp_dbh_from_sth;
    bind_type_guessing= imp_dbh->bind_type_guessing;
  }

  char *salloc = parse_params(svsock,
                              sbuf,
                              &slen,
                              params,
                              num_params,
                              bind_type_guessing);

I fixed be moving the declarations.

Martin
--
Martin J. Evans
Easysoft Ltd, UK
Development

Reply via email to