怎么判断前面是否已经mysql_real_connect了呢?

昵称是神马 2013-04-07 11:12:07
怎么判断前面是否已经mysql_real_connect了呢?
在一个函数里面要向mysql里写数据,但是可能前面已经mysql_real_connect了,连接两次又会报错,怎么判断前面是否已经mysql_real_connect了呢?怎么获得它的状态?
...全文
214 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
prohibit 2013-04-07
  • 打赏
  • 举报
回复
引用 6 楼 yujiefei0309 的回复:
引用 3 楼 prohibit 的回复:一个变量(可以是类的成员变量,全局变量等等,根据具体情况来看)存储连接时返回的MYSQL *类型指针(成功会返回MYSQL*句柄,失败会返回NULL),以后就可以根据变量是否为NULL来判断之前是否已经成功连接了我知道了,让mysql_real_connect的返回值给一个MYSQL的指针,然后判断这个指针是否为空就可以判断是否连接……
你mysql_close后,手动把它置为NULL就行了,一般的指针操作都要注意收尾操作
昵称是神马 2013-04-07
  • 打赏
  • 举报
回复
引用 5 楼 qq120848369 的回复:
... 你自己的程序你没能力记录是否connect过吗?
不知道前面是否连接成功,或者连接成功后关闭了连接啊,怎么获得连接的状态。。。
昵称是神马 2013-04-07
  • 打赏
  • 举报
回复
引用 3 楼 prohibit 的回复:
一个变量(可以是类的成员变量,全局变量等等,根据具体情况来看)存储连接时返回的MYSQL *类型指针(成功会返回MYSQL*句柄,失败会返回NULL),以后就可以根据变量是否为NULL来判断之前是否已经成功连接了
我知道了,让mysql_real_connect的返回值给一个MYSQL的指针,然后判断这个指针是否为空就可以判断是否连接了,这样的吗?如果后来使用mysql_close了,这个指针会不会跟着一起改变啊?
qq120848369 2013-04-07
  • 打赏
  • 举报
回复
... 你自己的程序你没能力记录是否connect过吗?
昵称是神马 2013-04-07
  • 打赏
  • 举报
回复
引用 3 楼 prohibit 的回复:
一个变量(可以是类的成员变量,全局变量等等,根据具体情况来看)存储连接时返回的MYSQL *类型指针(成功会返回MYSQL*句柄,失败会返回NULL),以后就可以根据变量是否为NULL来判断之前是否已经成功连接了
就是通过判断mysql_real_connect的第一个参数吗?
prohibit 2013-04-07
  • 打赏
  • 举报
回复
一个变量(可以是类的成员变量,全局变量等等,根据具体情况来看)存储连接时返回的MYSQL *类型指针(成功会返回MYSQL*句柄,失败会返回NULL),以后就可以根据变量是否为NULL来判断之前是否已经成功连接了
昵称是神马 2013-04-07
  • 打赏
  • 举报
回复
引用 1 楼 zilaishuichina 的回复:
1、 连接池 2、 判断数据库端口的socket状态
忘明示啊。。。不懂
zilaishuichina 2013-04-07
  • 打赏
  • 举报
回复
1、 连接池 2、 判断数据库端口的socket状态
liao05050075 2013-04-07
  • 打赏
  • 举报
回复
调用mysql_ping()函数可以检测本客户端是否丢失了连接,如果丢失了连接,则可以自动重新连接.
zilaishuichina 2013-04-07
  • 打赏
  • 举报
回复
引用 2 楼 yujiefei0309 的回复:
引用 1 楼 zilaishuichina 的回复:1、 连接池 2、 判断数据库端口的socket状态忘明示啊。。。不懂
用连接池 就是说由连接池来负责管理数据库连接,你从连接池里拿出来的连接默认为就是可信任的有效连接,这个连接池你可以自己实现,也可以用第三方的 判断socket端口 数据库连接实际上就是一个socket连接,所以有对应的端口号,比如你的9013端口连接的数据库的8080端口,你可以用netstat查看你的9013的连接状态
本课程总共23个章节,155个小节,深入MySQL各个环节,精心录制,2023年最新课程。每个章节都会以原理深入+实际案例进行讲解。特别是对SQL语句这块,更是逐步深入SQL 优化各个环节,图文并茂掌握入SQL 优化的原理和方法。此课程不仅仅是针对DBA,同样无论你是开发工程师还是运维工程师或者从事DBA的同学,相信你一定能从这套课程深入的掌握mysql。第一章:MySQL在金融互联网行业的企业级安装部署第二章:mysql启动关闭原理和实战_及常见错误排查第三章:字符集和校验规则第四章:史上最详细的Mysql用户权原理和实战第五章:InnoDB引擎原理和实战,通俗易懂第六章:MySQL文件系统详解第七章:SQL编程开发与优化事项第八章:MySQL索引原理和案例第九章:性能索引相关的数据字典和排查第十章:优化器算法和执行计划详解第十一章:MySQL查询优化和压测第十二章:事务原理和版本控制MVCC第十三章:呕心沥血讲解锁的原理和案例第十四章:行锁再分析_加锁范围第十五章:慢查询原理和实战,史上最详细pt-query-digest讲解第十六章:备份恢复原理和实战,金融行业生产脚本说明第十七章:主从复制_gtid_并行复制_半同步复制_实操案例,常用命令,故障处理第十八章:高可用和读写分离架构_MHA第十九章:高可用和读写分离架构_ATLAS第二十章:全网最细的mycat详解_分库分表实战第二十一章:性能压测_sysbench详解

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧