我有以下查询:
var query2 = "INSERT INTO abonnement (type_carte,type_demande,type_abonnement,classe,date_validite,gare_depart,gare_arrivee,id_client) VALUES ('"+t_carte+"','"+t_demande+"','"+t_abonnement+"','"+classe+"','"+date_validite+"','"+g_depart+"','"+g_arrive+"','SELECT id_client from client WHERE id_client=8')";但是,当我执行它时,我会收到以下错误:
mysql错误:不正确的整数值:‘从客户端选择id_client,其中id_client =8;
id_client是来自表客户端的foreign key。
发布于 2015-06-11 11:45:43
对于id_client字段,您必须将select语句的put传递出去,而不是将语句本身作为‘字符串文本’传递出去。删除周围的单引号,只需插入括号即可。
var query2 =
"INSERT INTO abonnement (type_carte, type_demande, type_abonnement
, classe, date_validite, gare_depart
, gare_arrivee, id_client)
VALUES ( '" + t_carte + "','" + t_demande + "','"
+ t_abonnement + "','" + classe + "','"
+ date_validite + "','" + g_depart + "','"
+ g_arrive
+ "', ( SELECT id_client FROM client
WHERE id_client = 8 LIMIT 1 )
)";我添加了LIMIT 1子句,因为如果语句返回多条记录,则查询将失败。
PS:当您已经知道id_client字段的值时,为什么要使用select id_client ... where id_client=8 ...语句?您可以直接输入'8'来代替这个不必要的语句。
https://stackoverflow.com/questions/30779194
复制相似问题