MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / sql_query

Function sql_query

modules/sqlops/sqlops_db.c:427–471  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

425
426
427int sql_query(struct db_url *url, struct sip_msg *msg, str *query,
428 pvname_list_t* dest, int one_row)
429{
430 db_res_t* db_res = NULL;
431
432 if(query==NULL)
433 {
434 LM_ERR("bad parameter\n");
435 return -1;
436 }
437
438 if(url->dbf.raw_query( url->hdl, query, &db_res)!=0)
439 {
440 const str *t = url->hdl&&url->hdl->table&&url->hdl->table->s
441 ? url->hdl->table : 0;
442 LM_ERR("raw_query failed: db%d(%.*s) %.*s...\n",
443 url->idx, t?t->len:0, t?t->s:"", query->len > 40 ? 40 : query->len,
444 query->s);
445 return -1;
446 }
447
448 if(db_res==NULL || RES_ROW_N(db_res)<=0 || RES_COL_N(db_res)<=0)
449 {
450 LM_DBG("no result after query\n");
451 db_close_query( url, db_res );
452 return 1;
453 }
454
455 if (one_row) {
456 if (db_query_print_one_result(msg, db_res, dest) != 0) {
457 LM_ERR("failed to print ONE result\n");
458 db_close_query( url, db_res );
459 return -1;
460 }
461 } else {
462 if (db_query_print_results(msg, db_res, dest) != 0) {
463 LM_ERR("failed to print results\n");
464 db_close_query( url, db_res );
465 return -1;
466 }
467 }
468
469 db_close_query( url, db_res );
470 return 0;
471}
472
473
474static inline int _json_to_cols(cJSON *Jcols, db_key_t** _c)

Callers 2

ops_sql_queryFunction · 0.85
ops_async_sql_queryFunction · 0.85

Calls 3

db_close_queryFunction · 0.85
db_query_print_resultsFunction · 0.85

Tested by

no test coverage detected