我是 C++ 开发新手。
我想尝试使用MySQL数据库,但不明白它有什么问题。这是我的代码:
#include <iostream>
#include <mysql.h>
MYSQL *connection, mysql;
MYSQL_RES *result;
MYSQL_ROW row;
int query_state;
int main() {
mysql_init(&mysql);
//connection = mysql_real_connect(&mysql,"host","user",
// "password","database",port,"unix_socket",clientflag);
connection = mysql_real_connect(&mysql,"localhost",
"root","qwer","cpp_data",3306,0,0);
if (connection == NULL) {
std::cout << mysql_error(&mysql) << std::endl;
return 1;
}
query_state = mysql_query(connection, "select user_count()");
if (query_state !=0) {
std::cout << mysql_error(connection) << std::endl;
return 1;
}
result = mysql_store_result(connection);
while (( row = mysql_fetch_row(result)) != NULL) {
std::cout << "Number of active users : " << row[0] << std::endl;
}
mysql_free_result(result);
mysql_close(connection);
return 0;
}
当我运行我的程序时,它说
C:\Users\user\CLionProjects\my-cpp-training\main.cpp:9:19:致命错误:mysql.h:没有这样的文件或目录
我将提供我的CMakeList,还有一些我通过学习编写的源代码。这是:
cmake_minimum_required(VERSION 3.8)
project(my_cpp_training)
set(CMAKE_CXX_STANDARD 11)
LINK_DIRECTORIES(D:/Downloads/mysql-connector-c++-noinstall-1.1.9-winx64/include)
include_directories ("D:/Downloads/mysql-connector-c++-noinstall-1.1.9-winx64/include")
set(SOURCE_FILES main.cpp util/ContrainerUtils.cpp classes/Examples.cpp classes/Person.cpp classes/Person.h pointers/PointersArithmatic.cpp classes/Object.cpp classes/Object.h classes/Animal.cpp classes/Animal.h classes/Vector.cpp classes/Vector.h business-layer/user.cpp util/Out.cpp util/Out.h classes/Container.cpp classes/Container.h classes/Vector_container.cpp classes/Vector_container.h util/PropertiesReader.cpp util/PropertiesReader.h util/Settings.cpp util/Settings.h)
add_executable(my_cpp_training ${SOURCE_FILES})
target_link_libraries (my_cpp_training mysqlcppconn)
这表明我已通过 CMakeList.txt 中使用的路径下载并提取了该库到我的计算机上
请帮助我,不仅仅是写下你的想法,我已经用谷歌搜索了半天,读了很多东西。只是在这里写下,就像你不正确,或者你忘记了这段代码或行一样。
理查德·霍奇斯是对的。这是他的评论:
对。所以它实际上并不在磁盘上。您下载的是 mysqlcppconn C++ 连接器,而不是 mysql C 连接器。
所以以我的方式我可以使用 mysql_connection.h 或下载正确的库。 非常感谢,理查德