问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux系统下c语言连接mysql数据库时有关mysql_error这个函数的返回值的问题,求知情人士

发布网友 发布时间:2022-04-10 03:04

我来回答

3个回答

懂视网 时间:2022-04-10 07:25

由于管理系统中对mysql管理的开发中用到了saltstack集成的mysql模块其中一个主要的功能是 mysql.query 

官方文档中的两个示例:


salt.modules.mysql.query(database, query, **connection_args)

Run an arbitrary SQL query and return the results or the number of affected rows.

CLI Example:

      salt ‘*‘ mysql.query mydb "UPDATE mytable set myfield=1 limit 1"

       Return data:

           {‘query time‘: {‘human‘: ‘39.0ms‘, ‘raw‘: ‘0.03899‘}, ‘rows affected‘: 1L}


CLI Example:

     salt ‘*‘ mysql.query mydb "SELECT id,name,cash from users limit 3"

     Return data:

            {‘columns‘: (‘id‘, ‘name‘, ‘cash‘),

             ‘query time‘: {‘human‘: ‘1.0ms‘, ‘raw‘: ‘0.001‘},

             ‘results‘: ((1L, ‘User 1‘, Decimal(‘110.000000‘)),

              (2L, ‘User 2‘, Decimal(‘215.636756‘)),          

              (3L, ‘User 3‘, Decimal(‘0.040000‘))),

              ‘rows returned‘: 3L}


我测试的一个示例:

 salt www.pyadmin.com mysql.query salt "explain select * from salt_events"

  www.pyadmin.com:

    ----------

    query time:

        ----------

        human:

            14.0ms

        raw:

            0.01402

    rows affected:

        1


观察官方的和我测试的输出显示结果来看只有 SELECT 语句显示了希望的结果。

那么我要显示 explain的结果呢? 查看了好多遍官方的文档也没有头绪,只好从源代码入手了

首先找到这个相关的模块--mysql

主要位置在  /usr/local/lib/python2.7/dist-packages/salt/modules/mysql.py

注意:有的系统是在 site-packages 文件夹下

编辑这个文件找到如下位置:

ret = {}
ret[‘query time‘] = {‘human‘: elapsed_h, ‘raw‘: str(round(elapsed, 5))}
select_keywords = ["SELECT", "SHOW", "DESC"]
select_query = False
for keyword in select_keywords:
    if query.upper().strip().startswith(keyword):
        select_query = True
        break
if select_query:
    ret[‘rows returned‘] = affected
    columns = ()
    for column in cur.description:
        columns += (column[0],)
    ret[‘columns‘] = columns
    ret[‘results‘] = results
    return ret
else:
    ret[‘rows affected‘] = affected
    return ret

在字典里面增加  “EXPLAIN” 这样一个元素

select_keywords = ["SELECT", "SHOW", "DESC", "EXPLAIN"]


然后我们在来查看一下执行结果的输出:


www.pyadmin.com:

    ----------

    columns:

        - id

        - select_type

        - table

        - partitions

        - type

        - possible_keys

        - key

        - key_len

        - ref

        - rows

        - filtered

        - Extra

    query time:

        ----------

        human:

            0.24s

        raw:

            0.23805

    results:

        |_

          - 1

          - SIMPLE

          - salt_events

          - None

          - ALL

          - None

          - None

          - None

          - None

          - 3707

          - 100.00

          - None

    rows returned:

        1

和修改之前的输出结果对比多了results 这一项。

本文出自 “影子骑士” 博客,请务必保留此出处http://andylhz2009.blog.51cto.com/728703/1951339

SaltStack工具中MySQL的模块返回值问题解决

标签:mysql   管理系统   saltstack   

热心网友 时间:2022-04-10 04:33

应该这样用,连接的时候不要指定数据库,分步操作和检测

if(!mysql_real_connect(character_ptr,"localhost","root","24157518", NULL ,0,NULL,0))
printf("Error connecting to server: %s\n", mysql_error(character_ptr));

if(!mysql_select_db(character_ptr, "test_database"))
printf("Error connecting to database: %s\n", mysql_error(character_ptr));

热心网友 时间:2022-04-10 05:51

MYSQL mysql;
.....
mysql_init(&mysql);
if(!mysql_real_connect(&mysql,"localhost","root","123456",NULL,0,NULL,0))
{
printf("%s\n",mysql_error(&mysql));//如果无法连接数据库,这时就会说明原因!
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
青海摇什么时候火的 宋庄镇都有哪些村 唐山多地解除封控管理、静态管理,市民仍需做好哪些防护? 拼多多上面的旗舰店是正品吗 ...尺是20:1的图纸上,应画多少厘米,在比例尺是1:200的图纸上测_百度知... 4x2=8,4x20=8,4x200=800,我发现了:一个因数不变,另外一个因数乘以几,积... 小学三年级数学上册4X2=8,4X20=80,4X200=800我发现:一个因数不变,另... 描写雪的段落优选好句60句 程序员最低学历是多少 电脑不识别独显了怎么办? 怎样成为一名web全栈工程师? 西门子全自动滚筒洗衣机出现只显示衣服公斤数,其余无任何反应是什么故障? 天津能办外地人的临时身份证吗 身在外地身份证丢失最新补办需要多长时间 关于外地人在天津申请临时身份证的问题 天津临时身份证 临时身份证可以在异地办吗?要多久 天津异地临时身份证办理 在天津异地补办身份证需要多长时间 户口从外地迁到天津后,身份证换证多长时间能下来 天津静海区办理临时身份证多长时间 深度解析人工智能,机器学习和深度学习的区别 天津的临时身份证补办需要多少天能办下来啊? 一篇文章讲清楚人工智能,机器学习和深度学习的区别 我是外地人,怎么才能在天津办理临时身份证?需要多长时间? 外地学生在天津考驾照,想在河西区办一个临时身份证,需要去哪办呢?临时或者正式的身份证要多久办下来? 深度学习,机器学习和人工智能有什么关系? 天津办临时身份证需要多长时间? win7系统怎么没有打印机服务器属性啊!? 如何在Win7系统中设置打印机详细步骤 各位大神,我想问问,桑拿鸡用冷水蒸还是热水?在锅里蒸多久才是最好... 三峡申购730905是创业板吗? 蒸鸡好吃吗?求蒸全鸡的具体步骤 三峡水利是什么类型的股票?三峡水利三季度业绩大涨原因?三峡水利是属于哪个行业? 三峡水利是什么板块的股票?三峡水利股票业绩如何?三峡水利到底属于哪个板块? 三峡水利是什么板块股票龙头?三峡水利股票业绩预测?三峡水利股票是属于什么股票? 苹果4s手机聊聊秀软件的去哪里才能下载 三峡水利股怎样操作怎样持有?三峡水利一季度业绩预测?三峡水利属于什么股票概念? 天猫魔盒安装不了应用了怎么办 天猫魔盒怎么安装不了第三方软件了 怎么解决天猫魔盒不能安装软件问题 天猫魔盒恢复出厂设置怎么下不了电视直播 在上海找一个住家保姆,不知道上海哪家家政好? 上海家政公司哪家最可靠? 买保险对自己的好处 PHP + MySql 查询返回值的问题! 青春版荣耀8能装多大内存在什么格式? 荣耀8运行内存实际是多少 华为荣耀8青春版的内存卡原来是32G可否换更高的内存卡? 河南省金浪文化传媒有限公司怎么样?