ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Запрос на mysql из модуля


  • To: nginx-ru@xxxxxxxxx
  • Subject: Запрос на mysql из модуля
  • From: "Georg Tadeev" <god3000god@xxxxxxxxx>
  • Date: Wed, 17 Dec 2008 15:58:25 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=2i1MFhHIt/0VxC920F5JxxFZDYjWSX2Ezq0BfTsPSFA=; b=BHv0OkJwtifMHyoVi7HR6HdhfbMxY+S8jHT5Ibr8Vz3m/cTQPvmupv+6ylXFxcvgUa zx5oCjpDaYvI7yM9bhS/DcZ9tkhyRBF3kNucANt8DhrlAVwUpcmSCi8TBpnS26tlsBLI Lck7uE+fsTdH3AnJ0bcJvvqny+K6Wq2VC0Gbc=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=mtY7YLcS33rXxQTYPnhke3KWCLN/eP2kD97N3p4SQu7Qfbmus8cjRCv3jSSGZyhhbZ 0SA9ZmJ6Pc6cCjE2x0Kx297nGGqmFmd1B+VogXSXtGs1/9tsc0MNnefmCpUmJwQugwS5 4L0Iof+CNxBvZ7hWaHbD90Cd8eOG0zDQU0RA0=

Пришлось переделать mod-access-key так чтоб он запрашивал доступ на URL в базу.
Вот код

  MYSQL *conn;
  MYSQL_RES *res;
  MYSQL_ROW row;
  char *server = "localhost";
  char *user = "root";
  char *password = "123";
  char *database = "download";
  unsigned int retint;
  conn = mysql_init(NULL);
  if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
     ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "Error: %s\n",mysql_error(conn));
  };

  signed char *q_uri = (signed char *)r->unparsed_uri.data;
  sprintf(query, "SELECT COUNT(*) AS CNT FROM DOWNS WHERE URI = RTRIM('%s')", q_uri);
  ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "EXECUTING: %s",query);
  if (mysql_query(conn, query)) {
     ngx_log_error(NGX_LOG_INFO, r->connection->log, 0, "Error: %s",mysql_error(conn));
  };
  res = mysql_use_result(conn);
  row = mysql_fetch_row(res);

Проблема:
никак не удается взать резултат из базы в переменную.
retint = (unsigned int)row[0];
   mysql_free_result(res);
   mysql_close(conn);

чтоб потом сделать простои IF.
  
   if (retint > 0)
   {
       return NGX_OK;
   }
   else
   {
       return NGX_HTTP_FORBIDDEN;
   };
Все ето происходит на линуксе, пробовал и етот код работает на тестере (не модуль, просто апликация пишет на stdout)

За любую помощь буду очень благодарен,
С уважением,



 




Copyright © Lexa Software, 1996-2009.