-2

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

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

所有表格列都拼写正确。但我知道为什么会发生这个错误。请告诉来遇到这个问题。

4

3 回答 3

1

试试这个:

strQuery = "update event_details set total_checkin='"+ strTotalMembers + "', checkin='"+ strTotalCheckIns + "', yet_to_check='"  + strYetToChecks + "' where event_name='"+ strTitle +"'";

因为你需要传递''中的所有字符串。

于 2012-12-26T12:01:48.487 回答
1

您缺少single-quotes字符串值。您应该使用可以解决此问题的主机变量。

于 2012-12-26T12:01:51.557 回答
0

您永远不应该自己手动构建查询。这是有风险的,它会打开你的 SQL 注入代码(谷歌那个)。这就是为什么您应该始终使用某种 API 来支持 prepareStatement 方法,这些方法接受带有占位符(通常是 qestionmark)和单独变量的查询。该方法应该为您填充占位符,在需要时处理引号、字符编码等。例如: http: //php.net/manual/en/pdo.prepared-statements.php

我相信你会在谷歌上找到更多关于它的信息。

希望能帮助到你

于 2012-12-28T02:04:45.593 回答