我正在尝试将字段插入到mysql数据库中,但它不起作用。
我尝试使用"插入图像",使用字符串文字的查询字符串来改变abit。 我查看here以尝试了解语法是否不同或类似。
我认为我是根据API进行的。
Here我的设置
从出口我得到
i = 1
MySQL Tables in mysql database:
images
这是代码。
有什么想法吗?
/* Simple C program that connects to MySQL Database server*/
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
//set the password for mysql server here
char *password = "********";
char *database = "myDB";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
/* send SQL query */
if (mysql_query(conn, "show tables") == 1)
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
int i = mysql_query(conn ,"INSERT INTO `myDB`.`images` (`id`, `date`, `path`) VALUES (NULL, CURRENT_TIMESTAMP, 'mypath/foo/bar')");
printf("i = %d \n", i);
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
{
printf("%s \n", row[0]);
}
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
答案 0 :(得分:1)
假设id
是主要ID和INT,它可能是自动增量。如果是这种情况,请从您的陈述中取出id
。
INSERT INTO `myDB`.`images` (`date`, `path`) VALUES (CURRENT_TIMESTAMP, 'mypath/foo/bar');
如果我们知道表格的格式,那么回答这个问题会很有帮助。这假设date
是TIMESTAMP而path
是CHAR或者很可能是VARCHAR。
答案 1 :(得分:0)
确认您的ID列不是主键,因为主键不允许空列
答案 2 :(得分:0)
我设法让它现在正常运作。我找到了一些例子here,我试图重新创建并使其正常工作。
它与其他查询不完全相同
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if (mysql_query(conn ,"INSERT INTO images VALUES (NULL , CURRENT_TIMESTAMP , 'awesome')"))
{
fprintf(stderr, "Error: could not execute query \n");
exit(1);
}
int my_bool = mysql_commit(conn);
mysql_free_result(res);
mysql_close(conn);
return 0;