This article uses the environment: win7 x64, vs2008, mysql as an example to explain how C connects to MySQL
For those who have installed mysql, check the mysql installation directory. If there are no include and lib directories in the installation directory ,
Indicates that it is not completely installed, you need to download the mysql-connector class library, the official download address: http://dev.mysql.com/downloads/connector/c/
Recommended courses: C Language Tutorial.
Some screenshots are as follows. As can be seen from the left side of the picture, the official website provides link libraries for c, c, Python, J and other languages, which can be downloaded according to personal circumstances.
Let’s start configuring vs2008, which roughly requires three steps.
Since we want to use the Mysql API, and the Mysql database must be installed on our machine, we need to point the project's header file path to the location of the same file mysql.h in the Mysql installation directory. Point the connection library path to the path where libmysql.lib is located.
These two files are generally in the include and lib directories.
Create a new project, right-click the project, select Properties, and the properties dialog box will pop up.
First: Point the C/C ->General->Additional Include Directory of the x project property page to the location of mysql.h: C:\Program Files\MySQL\ MySQL Server 5.1\include
Second:Point the linker->General->Additional library directory of the project property page to libmysql.lib Path: C:\Program Files\MySQL\MySQL Server 5.1\lib.
Third:Put linker->Enter- >Add libmysql.lib in Additional Dependencies.
An error occurred after passing the above configuration:
Unresolved external symbol _mysql_close@4, which is referenced in function _main
Unresolved external symbol _mysql_free_result@4, the symbol is referenced in function _main
Unresolved external symbol _mysql_num_fields@4, the symbol is referenced in function _main Referenced in function _main
Unresolved external symbol _mysql_fetch_row@4, this symbol is referenced in function _main
Unresolved external symbol _mysql_store_result @4, the symbol is referenced in the function _main
Unresolved external symbol _mysql_error@4, the symbol is referenced in the function _main
Unable Resolved external symbol _mysql_real_query@12, which is referenced in function _main
Unresolved external symbol _mysql_select_db@8, which is referenced in function _main
Unresolved external symbol _mysql_real_connect@32, the symbol is referenced in function _main
Unresolved external symbol _mysql_init@4, the symbol is referenced in
With the help of netizens, I uninstalled the 64-bit mysql-connector that I originally downloaded, and then downloaded a 32-bit installation again. As a result, the error disappeared. I was puzzled. Maybe my mysql database is 32-bit. Bar.
Finally, attach the sample code for c connection to mysql:
// test9.24.cpp : 定义控制台应用程序的入口点。 // //#include <stdio.h> //#include <stdlib.h> //#include <mysql.h> //包含MySQL所需要的头文件 //#include <WinSock2.h> //Socket,连接MySQL也需要用的 #include <windows.h> #include "stdio.h" #include "winsock.h" #include "mysql.h" MYSQL mysql, *sock; //声明MySQL的句柄 int main(void) { const char * host = "127.0.0.1"; //因为是作为本机测试,所以填写的是本地IP const char * user = "root"; //这里改为你的用户名,即连接MySQL的用户名 const char * passwd = "123"; //这里改为你的用户密码 const char * db = "yiersan"; //这里改为你要连接的数据库的名字 unsigned int port = 3306; //这是MySQL的服务器的端口,如果你没有修改过的话就是3306。 const char * unix_socket = NULL; //unix_socket这是unix下的,我在Windows下,所以就把它设置为NULL unsigned long client_flag = 0; //这个参数一般为0 int t; const char * i_query = "select * from yes_msg"; //查询语句 MYSQL_RES * result; //保存结果集的 www.2cto.com MYSQL_ROW row; //代表的是结果集中的一行 mysql_init(&mysql); //连接之前必须使用这个函数来初始化 if ( (sock = mysql_real_connect(&mysql, host, user, passwd, db, port, unix_socket, client_flag) ) == NULL ) //连接MySQL { printf("连接失败,原因是: \n"); fprintf(stderr, " %s\n", mysql_error(&mysql)); exit(1); } else { fprintf(stderr, "连接MySQL成功!!\n"); } if ( mysql_query(&mysql, i_query) != 0 ) //如果连接成功,则开始查询 { fprintf(stderr, "查询失败!\n"); exit(1); } else { if ( (result = mysql_store_result(&mysql)) == NULL ) //保存查询的结果 { fprintf(stderr, "保存结果集失败!\n"); exit(1); } else { while ( (row = mysql_fetch_row(result)) != NULL ) //读取结果集中的数据,返回的是下一行。因为保存结果集时,当前的游标在第一行【之前】 { printf("name is %s\t", row[0]); //打印当前行的第一列的数据 printf("age is %s\t\n", row[1]); //打印当前行的第二列的数据 } } } mysql_free_result(result); //释放结果集 mysql_close(sock); scanf("%d",&t);//关闭连接 system("pause"); exit(EXIT_SUCCESS); }
The above is the detailed content of How to connect c with mysql. For more information, please follow other related articles on the PHP Chinese website!

C# and .NET provide powerful features and an efficient development environment. 1) C# is a modern, object-oriented programming language that combines the power of C and the simplicity of Java. 2) The .NET framework is a platform for building and running applications, supporting multiple programming languages. 3) Classes and objects in C# are the core of object-oriented programming. Classes define data and behaviors, and objects are instances of classes. 4) The garbage collection mechanism of .NET automatically manages memory to simplify the work of developers. 5) C# and .NET provide powerful file operation functions, supporting synchronous and asynchronous programming. 6) Common errors can be solved through debugger, logging and exception handling. 7) Performance optimization and best practices include using StringBuild

.NETFramework is a cross-language, cross-platform development platform that provides a consistent programming model and a powerful runtime environment. 1) It consists of CLR and FCL, which manages memory and threads, and FCL provides pre-built functions. 2) Examples of usage include reading files and LINQ queries. 3) Common errors involve unhandled exceptions and memory leaks, and need to be resolved using debugging tools. 4) Performance optimization can be achieved through asynchronous programming and caching, and maintaining code readability and maintainability is the key.

Reasons for C#.NET to remain lasting attractive include its excellent performance, rich ecosystem, strong community support and cross-platform development capabilities. 1) Excellent performance and is suitable for enterprise-level application and game development; 2) The .NET framework provides a wide range of class libraries and tools to support a variety of development fields; 3) It has an active developer community and rich learning resources; 4) .NETCore realizes cross-platform development and expands application scenarios.

Design patterns in C#.NET include Singleton patterns and dependency injection. 1.Singleton mode ensures that there is only one instance of the class, which is suitable for scenarios where global access points are required, but attention should be paid to thread safety and abuse issues. 2. Dependency injection improves code flexibility and testability by injecting dependencies. It is often used for constructor injection, but it is necessary to avoid excessive use to increase complexity.

C#.NET is widely used in the modern world in the fields of game development, financial services, the Internet of Things and cloud computing. 1) In game development, use C# to program through the Unity engine. 2) In the field of financial services, C#.NET is used to develop high-performance trading systems and data analysis tools. 3) In terms of IoT and cloud computing, C#.NET provides support through Azure services to develop device control logic and data processing.

.NETFrameworkisWindows-centric,while.NETCore/5/6supportscross-platformdevelopment.1).NETFramework,since2002,isidealforWindowsapplicationsbutlimitedincross-platformcapabilities.2).NETCore,from2016,anditsevolutions(.NET5/6)offerbetterperformance,cross-

The C#.NET developer community provides rich resources and support, including: 1. Microsoft's official documents, 2. Community forums such as StackOverflow and Reddit, and 3. Open source projects on GitHub. These resources help developers improve their programming skills from basic learning to advanced applications.

The advantages of C#.NET include: 1) Language features, such as asynchronous programming simplifies development; 2) Performance and reliability, improving efficiency through JIT compilation and garbage collection mechanisms; 3) Cross-platform support, .NETCore expands application scenarios; 4) A wide range of practical applications, with outstanding performance from the Web to desktop and game development.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 Chinese version
Chinese version, very easy to use

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software
