首页 > 数据库 >mysql_real_query与mysql_query 区别

mysql_real_query与mysql_query 区别

时间:2023-12-27 16:58:25浏览次数:35  
标签:real mysql char sql query include

mysql_real_query(&mysql, sql, strlen(sql)); //多了一个长度

mysql_query(&mysql, sql);
1、mysql_real_query sql语句中可以包含二进制数据,调用的时候多一个strlen
2、mysql_query sql语句只能是字符串 ,当数据里有0的时候,直接就停了
调用的时候    ***多次调用会出现
//Commands out of sync; you can't run this command now
//执行语句后,必须获取结果集,并且清理,要不然会报错
//遍历和清理数据集
MYSQL_ROW row;
while (row=mysql_fetch_row(result))
{
//获取长度
unsigned long
lens= mysql_fetch_lengths(result);
cout<<lens[0] << "[" << row[0] << "]" << "[" << row[1] << "]" << "[" << row[2] <<"]" << endl;
}
//清理结果集
mysql_free_result(result);
测试代码

点击查看代码 #include #include #include #include using namespace std;

int main()
{
const char* host = "127.0.0.1";
const char* user = "root";
const char* password = "990107Wjl@";
const char* database = "database_test";
int port = 3306;

MYSQL mysql;
mysql_init(&mysql);
mysql_library_init(0, NULL, NULL);
//防止乱码
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "GBK");

if (!mysql_real_connect(&mysql, host, user, password, database, port, NULL, 0))
{
	cout << "failed to connect" << host << mysql_error(&mysql) << endl;
}

else
{
	cout << "successfully connected" << host <<endl;
}	

//找user表
//1、执行SQL语句
const char* sql = "select * from student";
//或者 char*sql;

//mysql_real_query sql语句中可以包含二进制数据
//mysql_query sql语句只能是字符串
//0返回成功
int re = mysql_real_query(&mysql, sql, strlen(sql));
//re = mysql_query(&mysql, sql);
//Commands out of sync; you can't run this command now
//zhixingsql语句后,必须获取结果集,并且清理,要不然会报错

if (re != 0)
{
	//如果执行失败
	cout << "查询语句执行失败,失败原因:" << sql <<" " << mysql_error(&mysql) << endl;
}
else
{
	cout << "查询语句执行成功!"<< endl;
}


//获取结果集
//1 mysql_use_result不实际读取
//2 mysql_store_result //读取所有的数据,注意缓存大小 MYSQL_OPT_MAX_ALLOWED_PACKET 默认 64M

MYSQL_RES* result = mysql_use_result(&mysql); //row_count=0
//MYSQL_RES* result = mysql_store_result(&mysql); //row_count=2


if (!result)
{
	cout << "mysql_use_result failed" << mysql_error(&mysql);

}

//遍历和清理数据集
MYSQL_ROW row;
while (row=mysql_fetch_row(result))
{
	//获取长度
	unsigned long*lens= mysql_fetch_lengths(result);
	cout<<lens[0] << "[" << row[0] << "]" << "[" << row[1] << "]" << "[" << row[2] <<"]" << endl;
}

//清理结果集
mysql_free_result(result);

mysql_close(&mysql);
mysql_library_end();
system("pause");
return 0;

}

标签:real,mysql,char,sql,query,include
From: https://www.cnblogs.com/fddcnblog/p/17930886.html

相关文章

  • Javascript 原型链 jQuery原型链 js原型链 我感觉我能一直写下去 扶着我>_<
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>原型链闭环</title><scriptsrc="./jquery.js"></script></head><body><divclass=&quo......
  • MySQL 事务日志
    MySQL事务日志事务有4种特性:原子性,一致性,隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢(是通过什么来控制的呢)?事务的"隔离性"由锁机制实现(通过加锁来实现隔离)。而事务的"原子性","一致性"和"持久性"由事务的redo日志和undo 日志来保证redolog称......
  • MySQL 8用户及权限管理
    官方链接:https://dev.mysql.com/doc/refman/8.0/en/create-user.htmlTheoptionalWITHclauseisusedtoenableausertograntprivilegestootherusers.TheWITHGRANTOPTIONclausegivestheusertheabilitytogivetootherusersanyprivilegestheuserhas......
  • MySQL 事务的基础知识
    事务的基础知识1.数据库事务概述事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库中的数据始终保持一致性,同时我们还能通过事务的机制恢复到某个时间地点的数据,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。1.1存储引擎的支持情况查询当......
  • 麒麟下mysql安装及使用
    1、进入软件商店--搜索mysql--安装mysql服务器和mysql工作台,重新启动系统;2、检测mysql版本:显示mysqlver8.0.33终端命令:mysql--version 3、启动mysql服务进程终端命令:sudosystemctlmysql4、查看服务状态终端命令:sudosystemctlstatusmysql按esc--:q退出vim返回终......
  • 20 mysql 隔离性的底层原理
    隔离性的原理:1.0隔离性是通过锁机制实现的。当一个事务修改数据时,需要先获取锁。其它事务要修改数据,必须等待之前的事务提交或者回滚,然后释放锁操作之后。myisam只支持表锁,innodb支持表锁和行锁。因为表锁比较影响性能,所以通常情况下,使用行锁就可以了。2.0隔离性的另外一个方面,就是......
  • 18-mysql索引
    一、b+树每次查找数据时把磁盘IO次数控制在一个很小的数量级,最好是常数数量级。那么我们就想到如果一个高度可控的多路搜索树是否能满足需求呢?就这样,b+树应运而生(B+树是通过二叉查找树,再由平衡二叉树,B树演化而来)。1.索引字段要尽量的小:通过上面的分析,我们知道IO次数取决于b+数......
  • 17--MySQL优化
    MySQL优化一、优化工具:1、系统优化工具1.1 top (1)简介: 实时监控当前操作系统的负载情况的,每秒刷新一次状态,通常会关注三大指标(CPU、MEM、IO) (2)评判标准 (2.1) 整体的负载情况,判断标准,如果值非常高,只能告诉我们操作系统很繁忙 load average: 0.00, 0.00, 0.00 ......
  • 11-MySQL 存储引擎
    MySQL存储引擎可以理解为,MySQL的“文件系统”,(插件形式存在)只不过功能更加强大。mysql提供的存储引擎有InnoDB、MyISAM等TokuDB是第三方的存储引擎moardb,数据压缩比打,写入数据快,如果你的应用是读多写少的情况强烈建议使用此存储引擎innodb存储引擎的功能一、查看存储引擎1......
  • 13-Mysql备份恢复
    一、备份的类型冷备份:关闭数据、停止业务温备份:加锁备份热备份:在先备份,不会影响到也正常运行二、备份方式2.1逻辑备份:基于SQL语句的备份mysqldump建库、建表、数据插入基于二进制日志:数据库的所有变化类的操作基于复制的备份:将二进制日志实时传送到另一台机器并且恢复......