我在不同的函数中使用函数 mysql_store_result() 和 mysql_fetch_row() 时遇到问题。
如果我这样做,一切正常:
int main() {
MYSQL *connection;
MYSQL_RES *result;
MYSQL_ROW row;
//Connect to database
mysql_query(connection, "SELECT column1 FROM table ORDER BY column1 ASC");
result = mysql_use_result(connection);
row = mysql_fetch_row(result);
puts(row[0]);
//Free results & close connection
}
但是,当我尝试在两个不同的函数中执行此操作时,我总是在 mysql_fetch_row(result) 上收到错误消息:“mysql_fetch_row() at 0xb781454d”没有可用的源。
我尝试了这两种方法(没有释放结果或关闭数据库()中的连接):
int main() {
MYSQL_RES *result;
MYSQL_ROW row;
database(result);
row = mysql_fetch_row(result);
puts(row[0]);
//free results
}
void database(MYSQL_RES *result) {
MYSQL *connection;
//Connect to database
mysql_query(connection, "SELECT column1 FROM table ORDER BY column1 ASC");
result = mysql_use_result(connection);
}
和
int main() {
MYSQL *connection;
MYSQL_RES *result;
MYSQL_ROW row;
database(connection);
result = mysql_use_result(connection);
row = mysql_fetch_row(result);
puts(row[0]);
//close connection & free results
}
void database(MYSQL *connection) {
//Connect to database
mysql_query(connection, "SELECT column1 FROM table ORDER BY column1 ASC");
}
所以我的问题:
- 我究竟做错了什么?
- 是否可以在两个不同的函数中进行选择和输出,而无需将所有结果复制到 RAM 中的不同结构中?
- 我试图在没有面向对象的程序编程中实现这一点。什么是最好的做法?
感谢您的任何帮助