Выбирающие строки в таблице базы данных MySQL с помощью MySQL C API и C++

ОК, во многих случаях вам даже не нужно ничего делать, так как по умолчанию для div для height и width задано значение auto, но если это не ваш случай, примените отображение inline-block. сработает для вас ... посмотрите на код, который я создаю для вас, и он сделает то, что вы ищете:

div {
  display: inline-block;
}
<div>
  <table>
    <tr>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td>
      <td>Nunc auctor aliquam est ac viverra. Sed enim nisi, feugiat sed accumsan eu, convallis eget felis. Pellentesque consequat eu leo nec pharetra. Aenean interdum enim dapibus diam.</td>
      <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td>
    </tr>
  </table>
</div>
6
задан drowneath 28 July 2009 в 14:25
поделиться

2 ответа

В MySQL C API mysql_fetch_row возвращает объект MYSQL_ROW, который по сути представляет собой массив значений в текущей строке.

Итак, ваш код должен выглядеть примерно так:

mysql_query(sqlhnd, "SELECT * FROM `my_table`");
MYSQL_RES *confres = mysql_store_result(sqlhnd);
int totalrows = mysql_num_rows(confres);
int numfields = mysql_num_fields(confres);
MYSQL_FIELD *mfield;

while((row = mysql_fetch_row(confres)))
{
    for(i = 0; i < numfields; i++)
    {
        char *val = row[i];
        // do something with val...
    }
}

Еще лучше , не выполняйте команду «SELECT * FROM mytable » в программе. Было бы гораздо лучше назвать ожидаемые поля именами, чтобы вы могли быть уверены в порядке возвращаемых полей.

15
ответ дан 8 December 2019 в 12:22
поделиться

Если вы используете C ++, почему бы не использовать MySQL ++ ? Это пример кода:

mysqlpp::Connection dbconnection;
dbconnection.connect("database", "server", "user", "pass");

mysqlpp::Query prepared_query = dbconnection.query( "SELECT * FROM `my_table`" );

mysqlpp::StoreQueryResult r = prepared_query.store();

int field = r.field_num("columntobefetched");

for(mysqlpp::StoreQueryResult::iterator i = r.begin(); i!=r.end();i++)
{
      std::cout << i->at(field) << std::endl;
      std::cout << (*i)["columntobefetched"] << std::endl; // this will be slower
}
4
ответ дан 8 December 2019 в 12:22
поделиться