使用MySQL .h解决:C++中的查询结果(CString) IM目前正在尝试C++和构建数据库连接。首先,它工作得很好。 如果我查询selectusername[…]这样的列,其中id=1,我将得到我的结果:testuser。 但如果我试着从…中选择*。。。我会得到: 1//正确的ID t//只有第一个字母

使用MySQL .h解决:C++中的查询结果(CString) IM目前正在尝试C++和构建数据库连接。首先,它工作得很好。 如果我查询selectusername[…]这样的列,其中id=1,我将得到我的结果:testuser。 但如果我试着从…中选择*。。。我会得到: 1//正确的ID t//只有第一个字母,c++,mysql,string,resultset,C++,Mysql,String,Resultset,即使在这里,我看起来也有点自大,但我无法找到一个完整的结果: 1. 测试用户 一如既往:谢谢你的时间和经验 纳斯滕 我的代码: #include "mysql.h" [...] sendToLog(_T("Abfrage Starten.")); MYSQL* m_pConn = ConnectToDatabase(); ASSERT(m_pConn != nullptr); MYSQL_RES *m_pResultSet;

即使在这里,我看起来也有点自大,但我无法找到一个完整的结果: 1. 测试用户

一如既往:谢谢你的时间和经验

纳斯滕

我的代码:

#include "mysql.h"

[...]

sendToLog(_T("Abfrage Starten."));
    MYSQL* m_pConn = ConnectToDatabase();
    ASSERT(m_pConn != nullptr);
    MYSQL_RES *m_pResultSet;
    MYSQL_ROW m_mysqlRow;
    
//Query:
    mysql_query(m_pConn, "SELECT * FROM fplaner.user WHERE ll_UserID=1");
    
//Result speichern
    m_pResultSet = mysql_store_result(m_pConn);
    
//Resultset durchgehen
    ASSERT(m_pResultSet != nullptr);                            
    
int m_llResCount = mysql_num_fields(m_pResultSet);          
    if (m_llResCount == 0)                                      
    {
        sendToLog(_T("ResultSet ist NICHT null aber Leer."));
    }
    else
    {
        while ((m_mysqlRow = mysql_fetch_row(m_pResultSet)))    
        {
            for (int i = 0; i < m_llResCount; i++)
            {
                if (m_mysqlRow == NULL)
                {
                    sendToLog(_T("Ungültiges ResultSet erhalten on COunt: "+i));
                }
                else
                {
                    sendToLog(_T("Gültiges ResultSet erhalten."));
                    CString strTest(*m_mysqlRow[i]);
                      //CString strTest(*m_mysqlRow);--> gives correct name when query with select name                     
                                                          from...
                    m_mysqlRow
                    sendToLog((strTest));
                }
            }
        }
    }

问题解决了: 结果集是指针上的字符指针。通过将其与*解除引用,仅当强。因此,如果没有它,效果很好: 更改CString strTest*m_mysqlRow[i];到CString strestm_mysqlRow[i]。它将按预期工作