1

insertクエリでステートメントを使用したいのですが、出力が表示されますUnable to connect database。私はこのフォームを使用します:

<form class="form-signin" action="CreateTeam.jsp">
                <h2 class="form-signin-heading">Create new team</h2>
                <input type="text" class="input-block-level" placeholder="Team name" name="name" id="name" required />
                <input type="text" class="input-block-level" placeholder="Team description" name="desc" id="desc" required />
                <button class="btn btn-large btn-primary" type="submit" >Create!</button>
                </form>

そして私のjspコードは次のとおりです。

<%
                String name = request.getParameter("name");
                String desc = request.getParameter("desc");

                Connection connection = null;
                PreparedStatement pstatement = null;
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                int updateQuery = 0;
                if (name != null && desc != null) {
                    if (name != "" && desc != "") {

                        try {
                            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
                            String queryString1 = "insert into teams (name,desc) values (?, ?)";
                            pstatement = connection.prepareStatement(queryString1);
                            pstatement.setString(1, name);
                            pstatement.setString(2, desc);
                            updateQuery = pstatement.executeUpdate();
                            if (updateQuery != 0) {
                                response.sendRedirect("../AdministrationControlPanel.jsp");
                            }
                        } catch (Exception ex) {
                            out.println("Unable to connect to database.");

                        } finally {
                            pstatement.close();
                            connection.close();
                        }
                    }
                }
            %>

データベースtestはローカルホストで実行されています。私はそれを修正していますが、どこが問題なのかわかりません。

4

2 に答える 2

1

DESCは、列の 1 つで、MySQL 予約済みキーワードです。バックティックを使用してエスケープする必要があります。

INSERT INTO teams (name,`desc`) values (?, ?)

将来の問題を回避するには、MySQL の予約済みキーワードであるキーワードを使用しないことをお勧めします。

于 2013-01-30T14:36:11.790 に答える
1

descMySQL引用する必要があるのキーワードです。

于 2013-01-30T14:37:00.137 に答える