Tag: mysql

gcc不会编译和运行MySQL C库

#include #include int main(int argc, char **argv) { printf(“MySQL client version: %s\n”, mysql_get_client_info()); } 〜$ gcc -o mysql-test MySQL-Test.c 我试图从终端执行此测试程序,但得到以下错误消息: /tmp/cceEmI0I.o:在函数main’: MySQL-Test.c:(.text+0xa): undefined reference to mysql_get_client_info的main’: MySQL-Test.c:(.text+0xa): undefined reference to ‘ 怎么了? 我的系统是ubuntu

异步Mysql连接器

是否存在可以在C或C ++应用程序中使用的Mysql的任何异步连接器? 我正在寻找可以插入用Boost.Asio编写的反应器模式的东西。 [编辑:]在线程中运行同步连接器不是一个选项。

mysql_insert_id线程安全吗?

我正在使用MySQL C API来构建db客户端应用程序,我需要在INSERT语句中获取最后一个自动增量值,所以mysql_insert_id会这样做。 但是这个客户端是multithreading的,一段代码是这样的: mysql_query(conn,query_string); value = mysql_insert_id(conn); 我不知道它会返回什么,这个查询自动生成id或其他东西。 有什么线索吗? 提前致谢。

libmysqlclient.a和libmysqlclient_r.a有什么区别?

我应该使用哪个链接mysqlclient库? 它们之间有什么区别? 我似乎无法找到答案。 谢谢。

在传递给mysql_query之前,有效地转义C中的引号

简而言之,我通常使用sprintf在C中构建MySQL查询 即 sprintf(sqlcmd,”update foo set dog=\”lab\” where description=\”%s\””,some_desc); mysql_query(some_conn,sqlcmd); 然而,如果some_desc就像Crazy 5“Dog ,那么MySql Server会尖叫,因为它对悬空引用感到困惑。 在C中,最好是扫描some_desc替换“with”“,或者在MySql中有一个函数来更好地包装它…即description = string(Crazy 5”Dog)? 谢谢!

在multithreading应用程序中使用libmysqlclient

我正在Linux平台上构建一个C应用程序。 我需要使用libmysqlclient来连接数据库。 我下载了Linux源代码包mysql-connector-c-6.0.2.tar.gz。 我按照说明编译了它。 我得到以下库: libmysqlclient.a libmysqlclient.so libmysql.so.16 libmysqlclient_r.so libmysql.so libmysql.so.16.0.0 如果我的应用程序是multithreading的,我可以将我的应用程序与libmysqlclient.a链接吗? 根据mysql文档( http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide ),使用cmake工具,客户端始终是线程安全的。 在将我的应用程序与libmysqlclient.a链接后,我的应用程序崩溃了以下调用堆栈: #0 0x0867878a in my_stat () No symbol table info available. #1 0x08671611 in init_available_charsets.clone.0 () No symbol table info available. #2 0x086720d5 in get_charset_by_csname () No symbol table info available. #3 0x086522af in mysql_init_character_set () No symbol table info […]

使用MySQL C API和C ++在MySQL数据库表中获取行

尝试使用带有MySQL C API的C ++在mysql中获取表行时,我感到很困惑。 我可以在PHP中轻松完成,因为C ++是一种强类型语言,因此我们还需要处理脏过程。 这是我在PHP中完成的方式 $ data = array(); $ i = 0; $ query = mysql_query(“SELECT * FROM`my_table`”); while($ fetch = mysql_fetch_array($ query)) { $ data [$ i] = $ fetch [‘columntobefetched’]; $ I ++; } 但是如何在C ++中使用MySQL API做同样的事情呢? 这是我到目前为止的代码….带有令人困惑的死胡同…… x__x MYSQL * sqlhnd = mysql_init(NULL); mysql_real_connect(sqlhnd,“server”,“user”,“pass”,“database”,port,NULL,0); mysql_query(sqlhnd,“SELECT * FROM`my_table`”); MYSQL_RES * […]

如何使用C API为MySQL查询设置超时

我知道这里有很多类似的问题,当我谷歌它时,也有很多结果,但它们都没有回答我的问题。 我读了这个 , 这个 , 这个和这个,但它们都不适合我。 我不谈任何锁,我不想使用MySQL c ++连接器,只是C API。 另外,这里非常重要:我在LINUX上这样做。 我为什么提这个? 因为在mysql_options的文档中: MYSQL_OPT_READ_TIMEOUT – …此选项仅适用于 TCP / IP连接,在MySQL 5.0.25之前,仅适用于Windows。 MYSQL_OPT_WRITE_TIMEOUT- …此选项仅适用于 TCP / IP连接,在MySQL 5.0.25之前,仅适用于Windows 那么,有没有办法为5.0.25之前的版本设置查询超时? 我的MySQL版本: [root @ xxx kiril] #mysql –version mysql Ver 14.12 Distrib 5.0.22,对于使用readline 5.0的redhat-linux-gnu(i686) 编辑:至少,有没有办法取消查询? 我可以启动一个计时器作为不同的线程,但当它到期..我可以以某种方式取消查询?

如何在Mac OS X上安装MySQL Connector / C?

我正在用C编写一个需要MySQL交互的应用程序,所以我从官方网站下载了Connector / C存档,它包含bin,lib和include文件夹,但我不知道在哪里安装它们。 我可以将包含文件复制到我的项目文件夹中,但是我可以在哪里放置lib文件以便我的编译二进制文件(和其他二进制文件)可以找到它? 提前致谢!

MySQL是否允许在C中进行回调,以便在发生更改时,我会收到通知?

MySQL是否允许在C中进行回调,以便当数据库中发生更改(如插入),由其他程序或用户在命令行执行时,我会收到通知? 我猜它没有,因为mysqlclient是一个库,而不是一个正在运行的线程。 但我不妨问一下。