/** Iterate over all tuples in the list */ static VALUE rdo_mysql_tuple_list_each(VALUE self) { RDOMySQLTupleList * list; Data_Get_Struct(self, RDOMySQLTupleList, list); if (!rb_block_given_p() || list->res == NULL) { return self; } mysql_data_seek(list->res, 0); unsigned int nfields = mysql_num_fields(list->res); MYSQL_FIELD * fields = mysql_fetch_fields(list->res); MYSQL_ROW row; while ((row = mysql_fetch_row(list->res))) { unsigned long * lengths = mysql_fetch_lengths(list->res); VALUE hash = rb_hash_new(); unsigned int i = 0; for (; i < nfields; ++i) { rb_hash_aset(hash, ID2SYM(rb_intern(fields[i].name)), rdo_mysql_cast_value(row[i], lengths[i], fields[i], list->encoding)); } rb_yield(hash); } return self; }
bool MyTblFmncMUsergroup::loadRecBySQL( const string& sqlstr , FmncMUsergroup** rec ) { MYSQL_RES* dbresult; MYSQL_ROW dbrow; unsigned long* dblengths; FmncMUsergroup* _rec = NULL; bool retval = false; if (mysql_real_query(dbs, sqlstr.c_str(), sqlstr.length())) throw DbsException("DbsException / MySQL: error executing query '" + sqlstr + "'\n"); dbresult = mysql_store_result(dbs); if (!dbresult) throw DbsException("DbsException / MySQL: error storing result! (TblFmncMUsergroup / loadRecBySQL)\n"); if (mysql_num_rows(dbresult) == 1) { dbrow = mysql_fetch_row(dbresult); dblengths = mysql_fetch_lengths(dbresult); _rec = new FmncMUsergroup(); if (dbrow[0]) _rec->ref = atoll((char*) dbrow[0]); else _rec->ref = 0; if (dbrow[1]) _rec->grp = atoll((char*) dbrow[1]); else _rec->grp = 0; if (dbrow[2]) _rec->own = atoll((char*) dbrow[2]); else _rec->own = 0; if (dbrow[3]) _rec->sref.assign(dbrow[3], dblengths[3]); else _rec->sref = ""; if (dbrow[4]) _rec->Comment.assign(dbrow[4], dblengths[4]); else _rec->Comment = ""; retval = true; }; mysql_free_result(dbresult); *rec = _rec; return retval; };
/* fetch_hash2 (internal) */ static VALUE fetch_hash2(VALUE obj, VALUE with_table) { MYSQL_RES* res = GetMysqlRes(obj); unsigned int n = mysql_num_fields(res); MYSQL_ROW row = mysql_fetch_row(res); unsigned long* lengths = mysql_fetch_lengths(res); MYSQL_FIELD* fields = mysql_fetch_fields(res); unsigned int i; VALUE hash; if (row == NULL) return Qnil; hash = rb_hash_new(); for (i=0; i<n; i++) { VALUE col; if (row[i] == NULL) continue; if (with_table == Qnil || with_table == Qfalse) col = rb_tainted_str_new2(fields[i].name); else { col = rb_tainted_str_new(fields[i].table, strlen(fields[i].table)+strlen(fields[i].name)+1); RSTRING(col)->ptr[strlen(fields[i].table)] = '.'; strcpy(RSTRING(col)->ptr+strlen(fields[i].table)+1, fields[i].name); } rb_hash_aset(hash, col, row[i]? rb_tainted_str_new(row[i], lengths[i]): Qnil); } return hash; }
static HB_ERRCODE mysqlGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo ) { SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData; if( ulRecNo == 0 || ulRecNo > pArea->ulRecCount ) { pArea->pRecord = pArea->pRow[ 0 ]; pArea->bRecordFlags = pArea->pRowFlags[ 0 ]; pArea->fPositioned = HB_FALSE; } else { pArea->pRecord = pArea->pRow[ ulRecNo ]; pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ]; if( ! ( pArea->bRecordFlags & SQLDD_FLAG_CACHED ) ) { mysql_row_seek( pSDDData->pResult, ( MYSQL_ROW_OFFSET ) pArea->pRecord ); pSDDData->pNatRecord = mysql_fetch_row( pSDDData->pResult ); pSDDData->pNatLength = mysql_fetch_lengths( pSDDData->pResult ); } pArea->fPositioned = HB_TRUE; } return HB_SUCCESS; }
unsigned long *SQLRES::fetch_lengths() { if(this->parent_conn->connok && this->res) return (mysql_fetch_lengths(this->res)); return (NULL); }
static int UdmMySQLStoreResult(UDM_DB *db, UDM_SQLRES *R) { size_t mitems= 0; MYSQL_ROW mysqlrow; while((mysqlrow=mysql_fetch_row((MYSQL_RES *)R->specific))) { size_t col; size_t coloffs= R->nRows * R->nCols; unsigned long *lengths= mysql_fetch_lengths((MYSQL_RES *)R->specific); if (coloffs + R->nCols >= mitems) { mitems= mitems ? mitems * 8 : 256; R->Items=(UDM_PSTR*)UdmRealloc(R->Items,mitems*sizeof(UDM_PSTR)); } for(col= 0; col < R->nCols ; col++) { UDM_PSTR *I= &R->Items[coloffs + col]; size_t len; len= I->len= lengths[col]; I->val= (char*) UdmMalloc(len+1); memcpy(I->val, mysqlrow[col], len); I->val[len]='\0'; } R->nRows++; } return UDM_OK; }
JSVAL getDataRows(JSARGS args) { HandleScope scope; String::Utf8Value sql(args[0]->ToString()); mysql_ping(handle); int failure = mysql_query(handle, *sql); if (failure) { return ThrowException(String::New(mysql_error(handle))); } MYSQL_RES *result = mysql_use_result(handle); if (!result) { return scope.Close(False()); } unsigned int num_fields = mysql_num_fields(result); MYSQL_FIELD *fields = mysql_fetch_fields(result); Handle<Array>a = Array::New(mysql_num_rows(result)); Local<String> names[num_fields]; int types[num_fields]; for (unsigned int n=0; n<num_fields; n++) { names[n] = String::New(fields[n].name); types[n] = fields[n].type; } unsigned long rowNdx = 0; unsigned int i; MYSQL_ROW row; while ((row = mysql_fetch_row(result))) { unsigned long *lengths = mysql_fetch_lengths(result); JSOBJ o = Object::New(); for (i=0; i<num_fields; i++) { if (row[i] == NULL) { o->Set(names[i], Null()); } else { switch (types[i]) { case MYSQL_TYPE_NULL: o->Set(names[i], Null()); break; case MYSQL_TYPE_TINY: case MYSQL_TYPE_SHORT: case MYSQL_TYPE_LONG: case MYSQL_TYPE_TIMESTAMP: case MYSQL_TYPE_LONGLONG: case MYSQL_TYPE_INT24: o->Set(names[i], Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_FLOAT: case MYSQL_TYPE_DOUBLE: o->Set(names[i], Number::New(atof(row[i]))); break; default: o->Set(names[i], String::New(row[i], lengths[i])); break; } } } a->Set(rowNdx++, o); } mysql_free_result(result); return scope.Close(a); }
bool MyTblPlnrAccRMUserUniversal::loadRecBySQL( const string& sqlstr , PlnrAccRMUserUniversal** rec ) { MYSQL_RES* dbresult; MYSQL_ROW dbrow; unsigned long* dblengths; PlnrAccRMUserUniversal* _rec = NULL; bool retval = false; if (mysql_real_query(dbs, sqlstr.c_str(), sqlstr.length())) throw DbsException("DbsException / MySQL: error executing query '" + sqlstr + "'\n"); dbresult = mysql_store_result(dbs); if (!dbresult) throw DbsException("DbsException / MySQL: error storing result! (TblPlnrAccRMUserUniversal / loadRecBySQL)\n"); if (mysql_num_rows(dbresult) == 1) { dbrow = mysql_fetch_row(dbresult); dblengths = mysql_fetch_lengths(dbresult); _rec = new PlnrAccRMUserUniversal(); if (dbrow[0]) _rec->ref = atoll((char*) dbrow[0]); else _rec->ref = 0; if (dbrow[1]) _rec->refPlnrMUser = atoll((char*) dbrow[1]); else _rec->refPlnrMUser = 0; if (dbrow[2]) _rec->unvIxPlnrVMaintable = atol((char*) dbrow[2]); else _rec->unvIxPlnrVMaintable = 0; if (dbrow[3]) _rec->unvUref = atoll((char*) dbrow[3]); else _rec->unvUref = 0; if (dbrow[4]) _rec->ixPlnrVAccess = atol((char*) dbrow[4]); else _rec->ixPlnrVAccess = 0; retval = true; }; mysql_free_result(dbresult); *rec = _rec; return retval; };
bool MyTblPlnrQUsrMNUsergroup::loadRecBySQL( const string& sqlstr , PlnrQUsrMNUsergroup** rec ) { MYSQL_RES* dbresult; MYSQL_ROW dbrow; unsigned long* dblengths; PlnrQUsrMNUsergroup* _rec = NULL; bool retval = false; if (mysql_real_query(dbs, sqlstr.c_str(), sqlstr.length())) throw DbsException("DbsException / MySQL: error executing query '" + sqlstr + "'\n"); dbresult = mysql_store_result(dbs); if (!dbresult) throw DbsException("DbsException / MySQL: error storing result! (TblPlnrQUsrMNUsergroup / loadRecBySQL)\n"); if (mysql_num_rows(dbresult) == 1) { dbrow = mysql_fetch_row(dbresult); dblengths = mysql_fetch_lengths(dbresult); _rec = new PlnrQUsrMNUsergroup(); if (dbrow[0]) _rec->qref = atoll((char*) dbrow[0]); else _rec->qref = 0; if (dbrow[1]) _rec->jref = atoll((char*) dbrow[1]); else _rec->jref = 0; if (dbrow[2]) _rec->jnum = atol((char*) dbrow[2]); else _rec->jnum = 0; if (dbrow[3]) _rec->mref = atoll((char*) dbrow[3]); else _rec->mref = 0; if (dbrow[4]) _rec->ref = atoll((char*) dbrow[4]); else _rec->ref = 0; if (dbrow[5]) _rec->ixPlnrVUserlevel = atol((char*) dbrow[5]); else _rec->ixPlnrVUserlevel = 0; retval = true; }; mysql_free_result(dbresult); *rec = _rec; return retval; };
//----------------------------------------------------------------------------- // 描述: 将游标指向下一条记录 //----------------------------------------------------------------------------- bool MySqlDataSet::next() { row_ = mysql_fetch_row(res_); if (row_) { MySqlField* field; int fieldCount; unsigned long *lengths; fieldCount = mysql_num_fields(res_); lengths = (unsigned long*)mysql_fetch_lengths(res_); for (int i = 0; i < fieldCount; i++) { if (i < dbFieldList_.getCount()) { field = (MySqlField*)dbFieldList_[i]; } else { field = new MySqlField(); dbFieldList_.add(field); } field->setData(row_[i], lengths[i]); } } return (row_ != NULL); }
VALUE db_mysql_result_each(VALUE self) { MYSQL_STMT *s; MYSQL_ROW data; size_t *lengths, row, col; Result *r = db_mysql_result_handle(self); if (r->statement && !NIL_P(r->statement)) return db_mysql_result_from_statement_each(self); if (!r->r) return Qfalse; mysql_data_seek(r->r, 0); for (row = 0; row < r->selected; row++) { VALUE tuple = rb_hash_new(); data = mysql_fetch_row(r->r); lengths = mysql_fetch_lengths(r->r); for (col = 0; col < (size_t)RARRAY_LEN(r->fields); col++) { if (!data[col]) { rb_hash_aset(tuple, rb_ary_entry(r->fields, col), Qnil); } else { rb_hash_aset(tuple, rb_ary_entry(r->fields, col), typecast_detect(data[col], lengths[col], NUM2INT(rb_ary_entry(r->types, col)))); } } rb_yield(tuple); } return Qtrue; }
/* {{{ property result_lengths_read */ static zval *result_lengths_read(mysqli_object *obj, zval *retval) { MYSQL_RES *p; #if defined(MYSQLI_USE_MYSQLND) const size_t *ret; #else const zend_ulong *ret; #endif uint32_t field_count; CHECK_STATUS(MYSQLI_STATUS_VALID); p = (MYSQL_RES *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr; field_count = mysql_num_fields(p); if (!p || !field_count || !(ret = mysql_fetch_lengths(p))) { ZVAL_NULL(retval); } else { zend_ulong i; array_init(retval); for (i = 0; i < field_count; i++) { add_index_long(retval, i, ret[i]); } } return retval; }
static GtCstrTable* gt_rdb_mysql_get_tables(GtRDB *rdb, GtError *err) { GtRDBMySQL *rdbm; MYSQL_RES *res; MYSQL_ROW row; GtCstrTable *tab; gt_assert(rdb); gt_error_check(err); rdbm = gt_rdb_mysql_cast(rdb); gt_assert(&rdbm->conn); res = mysql_list_tables(&rdbm->conn, NULL); /* NULL means 'all tables' */ if (!res) { gt_error_set(err, "error trying to list tables: %s", mysql_error(&rdbm->conn)); return NULL; } tab = gt_cstr_table_new(); while ((row = mysql_fetch_row(res))) { char buf[BUFSIZ]; GtUword *lengths; memset(buf, 0, BUFSIZ); lengths = mysql_fetch_lengths(res); (void) snprintf(buf, MIN(BUFSIZ, lengths[0])*sizeof (char), "%s", (char*) row[0] ? (char*) row[0] : "NULL"); gt_cstr_table_add(tab, buf); } mysql_free_result(res); return tab; }
/* * Convert a row from result into db API representation */ int convert_row(db_con_t* _h, db_res_t* _res, db_row_t* _r) { unsigned long* lengths; int i; #ifndef PARANOID if ((!_h) || (!_r) || (!_n)) { log(L_ERR, "convert_row(): Invalid parameter value\n"); return -1; } #endif ROW_VALUES(_r) = (db_val_t*)pkg_malloc(sizeof(db_val_t) * RES_COL_N(_res)); ROW_N(_r) = RES_COL_N(_res); if (!ROW_VALUES(_r)) { LOG(L_ERR, "convert_row(): No memory left\n"); return -1; } lengths = mysql_fetch_lengths(CON_RESULT(_h)); for(i = 0; i < RES_COL_N(_res); i++) { if (str2val(RES_TYPES(_res)[i], &(ROW_VALUES(_r)[i]), ((MYSQL_ROW)CON_ROW(_h))[i], lengths[i]) < 0) { LOG(L_ERR, "convert_row(): Error while converting value\n"); free_row(_r); return -3; } } return 0; }
int process_get_public_key(CLIENT *client, const VCRYPT_PACKET *packet) { MYSQL_RES *res = db_select("select public_key from users where username=%s", packet->username); VCRYPT_PACKET *ret_packet; if (res) { MYSQL_ROW row = mysql_fetch_row(res); unsigned long *lengths = mysql_fetch_lengths(res); if (row) { if (row[0]) { ret_packet = packet_new(DEST_SERVER, NULL, RESP_OK, lengths[0]); memcpy(ret_packet->payload, row[0], lengths[0]); } else { ret_packet = packet_new(DEST_SERVER, NULL, RESP_PUBLIC_KEY_NONE, 0); } } else { ret_packet = packet_new(DEST_SERVER, NULL, RESP_ERR_NOSUCHUSER, 0); } } else { ret_packet = packet_new(DEST_SERVER, NULL, RESP_ERR_TEMPORARY, 0); } ret_packet->queue_id = packet->queue_id; int retval = packet_send_client(client, ret_packet); packet_free(ret_packet); return retval; }
bool ResultSet::NextRow() { MYSQL_ROW row; if (!_result) return false; row = mysql_fetch_row(_result); if (!row) { CleanUp(); return false; } unsigned long* lengths = mysql_fetch_lengths(_result); if (!lengths) { TC_LOG_WARN("sql.sql", "%s:mysql_fetch_lengths, cannot retrieve value lengths. Error %s.", __FUNCTION__, mysql_error(_result->handle)); CleanUp(); return false; } for (uint32 i = 0; i < _fieldCount; i++) _currentRow[i].SetStructuredValue(row[i], MysqlTypeToFieldType(_fields[i].type), lengths[i]); return true; }
//------------------------------------------------------------------------------------- bool DBInterfaceMysql::execute(const char* strCommand, uint32 size, MemoryStream * resdata) { bool result = this->query(strCommand, size); if (!result) { return false; } if(resdata == NULL) { return true; } MYSQL_RES * pResult = mysql_store_result(mysql()); if(pResult) { if (resdata != NULL) { uint32 nrows = (uint32)mysql_num_rows(pResult); uint32 nfields = (uint32)mysql_num_fields(pResult); (*resdata) << nfields << nrows; MYSQL_ROW arow; while((arow = mysql_fetch_row(pResult)) != NULL) { unsigned long *lengths = mysql_fetch_lengths(pResult); for (uint32 i = 0; i < nfields; i++) { if (arow[i] == NULL) { std::string null = "NULL"; resdata->appendBlob(null.c_str(), null.size()); } else { resdata->appendBlob(arow[i], lengths[i]); } } } } mysql_free_result(pResult); } else { uint32 nfields = 0; uint64 affectedRows = mysql()->affected_rows; (*resdata) << ""; // errormsg (*resdata) << nfields; (*resdata) << affectedRows; } return true; }
JSVAL getDataRow(JSARGS args) { HandleScope scope; String::Utf8Value sql(args[0]->ToString()); mysql_ping(handle); int failure = mysql_query(handle, *sql); if (failure) { return ThrowException(String::New(mysql_error(handle))); } MYSQL_RES *result = mysql_store_result(handle); if (!result) { return scope.Close(False()); } unsigned int num_fields = mysql_num_fields(result); MYSQL_FIELD *fields = mysql_fetch_fields(result); MYSQL_ROW row = mysql_fetch_row(result); unsigned long *lengths = mysql_fetch_lengths(result); JSOBJ o = Object::New(); for (unsigned int i=0; i<num_fields; i++) { if (row[i] == NULL) { o->Set(String::New(fields[i].name), Null()); } else { switch (fields[i].type) { case MYSQL_TYPE_TINY: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_SHORT: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_LONG: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_FLOAT: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_DOUBLE: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_NULL: o->Set(String::New(fields[i].name), Null()); break; case MYSQL_TYPE_TIMESTAMP: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_LONGLONG: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; case MYSQL_TYPE_INT24: o->Set(String::New(fields[i].name), Integer::New(atoi(row[i]))); break; default: o->Set(String::New(fields[i].name), String::New(row[i], lengths[i])); break; } } } mysql_free_result(result); return scope.Close(o); }
Row UseQueryResult::fetch() { MYSQL_ROW row = mysql_fetch_row(res); if (!row) checkError(conn->getDriver()); return Row(row, this, mysql_fetch_lengths(res)); }
ulong CMySQLQuery::fieldLength(uint index) { #ifdef DEBUG qDebug("CMySQLQuery::fieldLength()"); #endif return !isResultNull() ? *(mysql_fetch_lengths(mysql_res) + index) : 0; }
void CSql::next(void) { if ( m_hResult != NULL ) { m_hRow = mysql_fetch_row( m_hResult ); m_fieldLengthArray = mysql_fetch_lengths( m_hResult ); } }
unsigned long *SQLRES::fetch_lengths() { // ftrace("%s [%d] %s \n", __FILE__, __LINE__, __FUNCTION__); if(this->parent_conn->connok && this->res) return (mysql_fetch_lengths(this->res)); return (NULL); }
int _GetPlc(MYSQL *db,LISTE *plcs,char *plcname) { char *sel_str; int res; MYSQL_ROW row; if ((plcname!=NULL)&&(strlen(plcname)>0)) res=asprintf(&sel_str,"SELECT distinct p.* FROM MODBUS as p LEFT JOIN DEFINITION as d ON p.PLCNAME=\ d.PLCNAME where p.PLC_PATH is not null and d.ADDRESS is not null and d.READING=1\ and d.TAG_SYSTEM='MB' and p.PLCNAME='%s'",plcname); else res=asprintf(&sel_str,"SELECT distinct p.* FROM MODBUS as p LEFT JOIN DEFINITION as d ON p.PLCNAME=\ d.PLCNAME where p.PLC_ENABLE=1 and p.PLC_PATH is not null and d.ADDRESS is not null and d.READING=1 and d.TAG_SYSTEM='MB'"); if (res<0) { Log(LOG_CRIT,"GetPLC : Unable to build query: %s\n",strerror(errno)); exit(0); } res=mysql_real_query(db,sel_str,strlen(sel_str)); free(sel_str); if (res) { _GetErrorCode(db,MysqlErrorMsg); return(-1); } SqlResult=mysql_store_result(db); if (SqlResult==NULL) { _GetErrorCode(db,MysqlErrorMsg); return(-1); } if (plcs==NULL) { res=mysql_num_rows(SqlResult); mysql_free_result(SqlResult); return(res); } while ((row = mysql_fetch_row(SqlResult))) { unsigned long *lengths; lengths = mysql_fetch_lengths(SqlResult); PLC *plc=malloc(sizeof(PLC)); if (plc!=NULL) { memset(plc,0,sizeof(PLC)); AddChListe(&PLCs,plc); plc->socket=-1; snprintf(plc->PlcName,lengths[0]+1,"%s",row[0]); snprintf(plc->PlcPath,lengths[1]+1,"%s",row[1]); if(row[2]!=NULL) plc->DeviceId=atoi(row[2]); } else { Log(LOG_CRIT,"GetPLC : Unable to allocate memory: %s\n",strerror(errno)); exit(0); } } mysql_free_result(SqlResult); res=_GetErrorCode(db,MysqlErrorMsg); if (res) return(res); else return(PLCs.Count); }
int ms_fetch(ClipMachine* mp,SQLROWSET* rs,int recs,ClipVar* eval,int every,ClipVar* ors){ MS_ROWSET* rowset = (MS_ROWSET*)rs; MS_STMT* stmt = rowset->stmt; MYSQL_ROW row; int i,j,er = 0; unsigned long *lens; void **rec; if(rowset->done) return 0; if(!recs) recs = 0x7fffffff; for(j=0;j<recs;j++){ row = mysql_fetch_row(stmt->res); if(!row) goto done; rowset->loaded++; rec = calloc(rowset->nfields,sizeof(void*)); lens = mysql_fetch_lengths(stmt->res); for(i=0;i<rowset->nfields;i++){ if(row[i]){ rec[i] = malloc(lens[i] + 4); *((int *) (rec[i])) = (int) lens[i]; memcpy(((char *) rec[i]) + 4, row[i], lens[i]); } else { rec[i] = NULL; } } rowset->data = realloc(rowset->data,rowset->loaded*sizeof(void*)); rowset->data[rowset->loaded - 1] = rec; if(eval && (eval->t.type == CCODE_t || eval->t.type == PCODE_t) && !(rowset->loaded % every)){ ClipVar var,*v; if(_clip_eval(mp,eval,1,ors,&var)){ _clip_destroy(mp,&var); er = 1; goto done; } v = _clip_vptr(&var); if(v->t.type == LOGICAL_t && !v->l.val){ _clip_destroy(mp,&var); goto done; } _clip_destroy(mp,&var); } } return 0; done: rowset->lastrec = rowset->loaded; rowset->done = 1; if(!rowset->lastrec){ rowset->bof = rowset->eof = 1; rowset->recno = 0; } _clip_destroy_c_item(mp,stmt->stmt_item,_C_ITEM_TYPE_SQL); return er; }
static Sample* mysql__search_iter_next_(unsigned long** lengths) { if(!search_result) return NULL; clear_result(); MYSQL_ROW row = mysql_fetch_row(search_result); if(!row) return NULL; *lengths = mysql_fetch_lengths(search_result); //free? GdkPixbuf* pixbuf = NULL; if(row[MYSQL_PIXBUF]){ pixbuf = blob_to_pixbuf((guint8*)row[MYSQL_PIXBUF], (*lengths)[MYSQL_PIXBUF]); } int get_int(MYSQL_ROW row, int i) { return row[i] ? atoi(row[i]) : 0; } float get_float(MYSQL_ROW row, int i) { return row[i] ? atof(row[i]) : 0.0; } static char full_path[PATH_MAX]; if (row[MYSQL_FULL_PATH] && *(row[MYSQL_FULL_PATH])) { strcpy(full_path, row[MYSQL_FULL_PATH]); } else { snprintf(full_path, PATH_MAX, "%s/%s", row[MYSQL_DIR], row[MYSQL_NAME]); full_path[PATH_MAX-1]='\0'; } result.id = atoi(row[MYSQL_ID]); result.full_path = full_path; result.name = row[MYSQL_NAME]; result.sample_dir = row[MYSQL_DIR]; result.keywords = row[MYSQL_KEYWORDS]; result.length = get_int(row, MYSQL_LENGTH); result.sample_rate = get_int(row, MYSQL_SAMPLERATE); result.channels = get_int(row, MYSQL_CHANNELS); result.peaklevel = get_float(row, MYSQL_PEAKLEVEL); result.overview = pixbuf; result.notes = row[MYSQL_NOTES]; result.ebur = row[MYSQL_EBUR]; result.colour_index= get_int(row, MYSQL_COLOUR); result.mimetype = row[MYSQL_MIMETYPE]; result.online = get_int(row, MYSQL_ONLINE); result.mtime = get_int(row, MYSQL_MTIME); result.bit_depth = get_int(row, MYSQL_BITDEPTH); result.bit_rate = get_int(row, MYSQL_BITRATE); result.frames = get_int(row, MYSQL_FRAMES); sample_set_metadata(&result, row[MYSQL_METADATA]); return &result; }
// return string length, -1 for error inline int get_next_url(char* buf) { MYSQL_ROW row; MYSQL_RES *res; if (!(res = buffered_get_next_row(&row))) return -1; unsigned long *lengths = mysql_fetch_lengths(res); memcpy(buf, row[0], lengths[0]); return lengths[0]; // note that length can be zero }
static Variant HHVM_FUNCTION(mysql_async_fetch_array, const Resource& result, int result_type /* = 1 */) { if ((result_type & PHP_MYSQL_BOTH) == 0) { throw_invalid_argument("result_type: %d", result_type); return false; } auto res = php_mysql_extract_result(result); if (!res) { return false; } MYSQL_RES* mysql_result = res->get(); if (!mysql_result) { raise_warning("invalid parameter to mysql_async_fetch_array"); return false; } MYSQL_ROW mysql_row = nullptr; int status = mysql_fetch_row_nonblocking(mysql_result, &mysql_row); // Last row, or no row yet available. if (status != NET_ASYNC_COMPLETE) { return false; } if (mysql_row == nullptr) { res->close(); return false; } unsigned long *mysql_row_lengths = mysql_fetch_lengths(mysql_result); if (!mysql_row_lengths) { return false; } mysql_field_seek(mysql_result, 0); Array ret; MYSQL_FIELD *mysql_field; int i; for (mysql_field = mysql_fetch_field(mysql_result), i = 0; mysql_field; mysql_field = mysql_fetch_field(mysql_result), i++) { Variant data; if (mysql_row[i]) { data = mysql_makevalue(String(mysql_row[i], mysql_row_lengths[i], CopyString), mysql_field); } if (result_type & PHP_MYSQL_NUM) { ret.set(i, data); } if (result_type & PHP_MYSQL_ASSOC) { ret.set(String(mysql_field->name, CopyString), data); } } return ret; }
MYSQL_ROW MySqlConnector::fetch(unsigned long*& lengths, unsigned int& count) { MYSQL_ROW row = mysql_fetch_row(m_result); if(row) { count = mysql_num_fields(m_result); lengths = mysql_fetch_lengths(m_result); } return row; }
const char* zc_mysqlrec_field_blob_pos(zcDBRec *rec, int pos, int *len, const char *defv) { zcMySQLRec *mrec = (zcMySQLRec*)rec; if (mrec->row == NULL || pos < 0 || pos >= mrec->_fields || mrec->row[pos] == NULL) return (char*)defv; unsigned long *lengths = mysql_fetch_lengths(mrec->res); *len = lengths[pos]; return mrec->row[pos]; }
MYSQL_ROW mysql__search_iter_next(unsigned long** lengths) { if(!search_result) return NULL; MYSQL_ROW row = mysql_fetch_row(search_result); if(!row) return NULL; *lengths = mysql_fetch_lengths(search_result); //free? return row; }