Solved:Query 使用 mysql.h 在 C++ 中的结果(到 CString)

Solved:Query Results (to CString) in C++ using mysql.h

我目前正在尝试使用 C++ 并使用来自 Oracle 的 mysql c api 构建数据库连接。首先,它工作正常。
如果我查询像“select username [...] where id=1”这样的 col,我会得到我的结果:
testuser.
但是如果我尝试“select * from...”我会得到:
1 //正确的ID
t // 只有第一个字母。

我到处找了很多地方,甚至在这里,但还是想不出如何获得完整的结果:
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));
                }
            }
        }
    }

问题已解决: 结果集是指针上的 Char 指针。通过用 * 取消引用它,如果强的话,它只会提供第一个字符。所以没有它工作正常:
更改“CString strTest(*m_mysqlRow[i]);”到“CString strTest(m_mysqlRow[i]);” .
它将按预期工作。