如何判断前面是否已经mysql_real_connect了呢
怎么判断前面是否已经mysql_real_connect了呢?
怎么判断前面是否已经mysql_real_connect了呢?
在一个函数里面要向mysql里写数据,但是可能前面已经mysql_real_connect了,连接两次又会报错,怎么判断前面是否已经mysql_real_connect了呢?怎么获得它的状态?
------解决方案--------------------
1、 连接池
2、 判断数据库端口的socket状态
------解决方案--------------------
一个变量(可以是类的成员变量,全局变量等等,根据具体情况来看)存储连接时返回的MYSQL *类型指针(成功会返回MYSQL*句柄,失败会返回NULL),以后就可以根据变量是否为NULL来判断之前是否已经成功连接了
------解决方案--------------------
你mysql_close后,手动把它置为NULL就行了,一般的指针操作都要注意收尾操作
------解决方案--------------------
用连接池 就是说由连接池来负责管理数据库连接,你从连接池里拿出来的连接默认为就是可信任的有效连接,这个连接池你可以自己实现,也可以用第三方的
判断socket端口 数据库连接实际上就是一个socket连接,所以有对应的端口号,比如你的9013端口连接的数据库的8080端口,你可以用netstat查看你的9013的连接状态
------解决方案--------------------
调用mysql_ping()函数可以检测本客户端是否丢失了连接,如果丢失了连接,则可以自动重新连接.
怎么判断前面是否已经mysql_real_connect了呢?
在一个函数里面要向mysql里写数据,但是可能前面已经mysql_real_connect了,连接两次又会报错,怎么判断前面是否已经mysql_real_connect了呢?怎么获得它的状态?
------解决方案--------------------
1、 连接池
2、 判断数据库端口的socket状态
------解决方案--------------------
一个变量(可以是类的成员变量,全局变量等等,根据具体情况来看)存储连接时返回的MYSQL *类型指针(成功会返回MYSQL*句柄,失败会返回NULL),以后就可以根据变量是否为NULL来判断之前是否已经成功连接了
------解决方案--------------------
你mysql_close后,手动把它置为NULL就行了,一般的指针操作都要注意收尾操作
------解决方案--------------------
用连接池 就是说由连接池来负责管理数据库连接,你从连接池里拿出来的连接默认为就是可信任的有效连接,这个连接池你可以自己实现,也可以用第三方的
判断socket端口 数据库连接实际上就是一个socket连接,所以有对应的端口号,比如你的9013端口连接的数据库的8080端口,你可以用netstat查看你的9013的连接状态
------解决方案--------------------
调用mysql_ping()函数可以检测本客户端是否丢失了连接,如果丢失了连接,则可以自动重新连接.