有几个问题:
在使用mysql_query函数时,应该传入MYSQL类型指针,而不是取地址符号&和MYSQL类型指针混合使用。应该将if语句中的&mysql改为mysql。
在出现查询失败时,直接使用break语句会导致程序跳出while循环(如果存在while循环),并且不会执行后续的mysql_close函数。应该使用return语句来结束函数,并在返回前执行mysql_close函数。
不应该在没有while循环的情况下使用break语句,因为这会造成编译错误。
修改后的代码如下:
#include
using namespace std;
int main() {
MYSQL* mysql;
mysql = mysql_init(NULL);
if (!mysql_real_connect(mysql, "localhost", "root", "123456", "qqq", 0, NULL, 0))
{
cout << "连接数据库失败:" << mysql_error(mysql) << endl;
return -1;
}
else
{
cout << "连接数据库成功!" << endl;
}
//删除数据 成功返回0,查询失败返回随机值
if (mysql_query(mysql, "delete from student where id = 34")) {
cout << "Error: Query[delete] fail." << endl;
mysql_close(mysql);
return -1;
}
cout << "Query[delete] success." << endl;
mysql_close(mysql);
return 0;
}