更新数据库时出现语法错误

时间:2012-12-26 11:59:07

标签: android sqlite

您好我需要在我的本地数据库中更新新人,同时添加一个新人,它会显示以下错误:

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);

所有表格列拼写正确。但我知道为什么会出现这种错误。请告诉我们解决这个问题。

3 个答案:

答案 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上找到更多。

希望有所帮助