3
String Query="insert into sms (Jobno, Mobilenumber, MStatus, ReceivedTime, AmountDeducted, Message, DoneTime)       values ("+jobnum +","+mobilenum+","+ smsstatus+",'"+ rxtimestamp+ "',"+ amt+",'"+smstxt+"','"+timedone1+"')";

注:Mysqlを介して、上記のクエリは正常に実行されます....

必要なすべてのライブラリとそれぞれのインターフェイスをプログラムにインポートしました....Java パネル/IDE を介して実行すると、次のエラーがスローされますか?

Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'Mobilenumber' at row 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2983)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317)       

何が問題なのか提案してください........

4

2 に答える 2

1

変数mobileNumberからの値の量が制限を超えています。したがって、DBプログラムとJavaプログラムの両方で定義したデータ型を確認し、保存するために指定したmobileNumberを確認してください。

于 2012-10-29T13:49:09.913 に答える
1

列「携帯電話番号」のタイプ、範囲、長さを確認し、さらに挿入された値を「」に入れて、スペース、挿入された携帯電話番号の他の文字(「+」や「/」など)、長い携帯電話番号の問題を回避してください。 。実数の場合、MySQLはテキストを透過的に数値に正しく変換する必要があります。

つまり、結果のコードは次のようになります。

String Query="insert into sms (Jobno, Mobilenumber, MStatus, ReceivedTime, AmountDeducted, Message, DoneTime)       values ('"+jobnum +"','"+mobilenum+"','"+ smsstatus+"','"+ rxtimestamp+ "','"+ amt+"','"+smstxt+"','"+timedone1+"')";

追加のヒント:SQLインジェクション攻撃の可能性を開かないよう に、常にプリペアドステートメントを使用するようにしてください。

于 2012-10-29T13:49:17.790 に答える