我有以下查询:
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 = 8的客户端中选择id_client;
仅供参考,id_client
是foreign key
来自表格客户端。
对于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'
代替此不必要的语句的位置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句