您好我需要在我的本地数据库中更新新人,同时添加一个新人,它会显示以下错误:
Failure 1 (near "Build": syntax error) on 0x29abd0 when preparing 'update event_details set total_checkin=12, checkin=7, yet_to_check=5 where event_name=Final Build Test'.
我原来的java代码:
strQuery = "update event_details set total_checkin="+ strTotalMembers + ", checkin="+ strTotalCheckIns + ", yet_to_check="+ strYetToChecks + " where event_name=" + strTitle;
mySqlite.executeQuery(strQuery);
所有表格列拼写正确。但我知道为什么会出现这种错误。请告诉我们解决这个问题。
答案 0 :(得分:1)
试试这个:
strQuery = "update event_details set total_checkin='"+ strTotalMembers + "', checkin='"+ strTotalCheckIns + "', yet_to_check='" + strYetToChecks + "' where event_name='"+ strTitle +"'";
因为您需要传递''。
中的所有字符串答案 1 :(得分:1)
你在字符串值周围缺少single-quotes
。你应该使用托管变量来解决这个问题。
答案 2 :(得分:0)
你永远不应该自己手动构建查询。这是有风险的,并打开SQL注入的代码(谷歌那)。这就是为什么你应该总是使用某种API来支持prepareStatement方法,这些方法接受占位符(通常是qestionmark)和分离变量的查询。该方法应该为您填写占位符,在需要时负责报价,字符编码等。 例如:http://php.net/manual/en/pdo.prepared-statements.php
我很有吸引力,你会在google上找到更多。
希望有所帮助