c 连接mysql插入数据执行成功但数据库中没有数据 10
#include<stdio.h>#include<string.h>#include<stdlib.h>#include"mysql.h"intmain(){MYSQL...
#include<stdio.h>#include<string.h>#include<stdlib.h>#include "mysql.h"int main(){ MYSQL my_conn; MYSQL_RES *res; MYSQL_ROW row; char *query; int flag,t; mysql_init(&my_conn); if(mysql_real_connect(&my_conn,"localhost","root","19580829","mid",0,NULL,0)){ printf("connection success\n"); query = "insert into request_infos(id, src, dest,created_time) values(1, 'rest', 'I have a dream','20180109104400)"; flag=mysql_real_query(&my_conn,query,(unsigned int)strlen(query)); if (!flag) { printf("insert failed\n"); } else { printf("insert success\n"); } } mysql_close(&my_conn); return 0;}输出了insert success,但我到MySQL里看表里还是没数据,图是我的表结构。我把query拿出来直接到MySQL执行可以插入。
展开
2个回答
展开全部
你应该用了spring配置式事务,被限制了修改了吧。
如下面:
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
这个配置中只允许 添加事务的对象中
以insert , update ,delete 开头的方法名 才允许修改数据库,
否则都是只读。
比方说我们写了一个方法,
doUpdateBook(Book book);
给这个类配置类事务,
那么它是无法修改数据库的,解决方法是,在配置事务里面吧规则加上去。
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="doUpdate*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
,这样,所有 doUpdate 开头的方法都可以修改数据库。
如下面:
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
这个配置中只允许 添加事务的对象中
以insert , update ,delete 开头的方法名 才允许修改数据库,
否则都是只读。
比方说我们写了一个方法,
doUpdateBook(Book book);
给这个类配置类事务,
那么它是无法修改数据库的,解决方法是,在配置事务里面吧规则加上去。
<!-- 事务代理拦截器的配置 -->
<bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="doUpdate*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
,这样,所有 doUpdate 开头的方法都可以修改数据库。
追问
那我这个就是insert开头的呀?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询