CentOS中利用C语言操作MySQL,插入日期和时间

来源:互联网 发布:淘宝家具安装价格 编辑:程序博客网 时间:2024/05/22 14:53

最近租用了一个云服务器,操作系统为CentOS6.5 64bit,搭建的LAMP环境,刚开始在bash shell中通过嵌入PHP来进行socket编程和mysql操作,不知什么原因总是会生成一个新进程阻碍程序重新执行,遂移步C语言来操作socket和mysql。

==============================================================================

进入正题:

利用PHP向MySQL的某一数据库的表中插入数据时,有时需要插入当时的时间的日期,所以会使用curtime()和curdate()两个函数,可谓省时省力,语言如下:

INSERT INTO db_test(date,time) VALUES(curdate(),curtime())

转战C语言后,同样需要进行相同的操作时,通过百度发现搜索的文章中都是利用locatetime()来获取时间后,再对字符串进行处理,鄙人感觉着实麻烦,遂抱着试一试的态度仍然使用 INSERT INTO db_test(date,time) VALUES(curdate(),curtime())

来对数据库进行操作,发现可行。

过程如下:

1、编写代码

vim mysql.c

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mysql/mysql.h>#include <mysql/errmsg.h>#include <mysql/mysqld_error.h>MYSQL conn;void connection(const char* host, const char* user, const char* password, const char* database) {mysql_init(&conn);if (mysql_real_connect(&conn, host, user, password, database, 0, NULL, 0)) {printf("Connection success!\n");} else {fprintf(stderr, "Connection failed!\n");  //stderr为标准错误输出,一般输出到屏幕上if (mysql_errno(&conn)) {fprintf(stderr, "Connection error %d: %s\n", mysql_errno(&conn), mysql_error(&conn));}exit(EXIT_FAILURE);}}void insert(void) {int result = mysql_query(&conn, "INSERT INTO db_test(date,time) VALUES(curdate(),curtime())");if (!result) {printf("Inserted %lu rows\n", (unsigned long)mysql_affected_rows(&conn));} else {fprintf(stderr, "Insert error %d: %s\n", mysql_errno(&conn), mysql_error(&conn));}}int main (int argc, char *argv[]) {connection("localhost", "root", "password", "db_name"); //注意修改password和db_name为实际需要的密码和库名insert();mysql_close(&conn);exit(EXIT_SUCCESS);}


2、编译并执行

gcc -L/usr/local/mysql/lib -lmysqlclient -o mysql mysql.c

./mysql

如图所示,则MySQL操作成功


3、登录phpmyadmin验证是否成功插入

如图:


/*******************************************THE END*************************************************/

1 0