FMDBを用いて配列をDBにインサートしようとしているのですが、下記コードを用いても「DB Error: 1 "near "order": syntax error"」エラーが出てしまいます。
まだデータベースの理解が足らず、申し訳ございません。
ご教示いただければ幸いです。よろしくお願いいたします。
ーーーーーーー以下追記ーーーーーーー
「"near "order": syntax error"」についてですが
下記コードでは変数名にa,b...gを用いていましたが実際のコードでは「order」を用いていました。どうやらカラム名に「order」を用いていると出ることがわかりました。
ですが名称を変えた場合でも「Error: the bind count (1) is not correct for the # of variables in the query (7)」が出てしまいます。
こちらのエラーもいろいろと調べてみたのですが解決方法が分からず難航しております。
大変恐縮ではございますが、ご助言、ご教示のほどお願い申し上げます。
swift
1override func viewDidLoad() { 2 super.viewDidLoad() 3 4 if !NSUserDefaults.standardUserDefaults().boolForKey("CSVReadFlg") { 5 6 // Create Table 7 DataBaseManager.sharedInstance.createPersonalDataBase() 8 9 // /Documentsまでのパスを取得 10 let paths = NSSearchPathForDirectoriesInDomains( 11 .DocumentDirectory, 12 .UserDomainMask, true) 13 // <Application>/Documents/sample.db というパスを生成 14 let _path = paths[0].stringByAppendingPathComponent("sample.db") 15 16 // FMDatabaseクラスのインスタンスを作成 17 // 引数にファイルまでのパスを渡す 18 let db = FMDatabase(path: _path) 19 20 //インサート配列に入れるための初期値 21 var a:Int = 10 22 var b:Int = 20 23 var c:Int = 30 24 var d:String = "abc" 25 var e:String = "def" 26 var f:String = "ghi" 27 var g:String = "jkl" 28 29 //ここに格納したものをSQL文でDBに挿入 30 var insert:[AnyObject] = [] 31 32 //インサート配列にそれぞれ追加 33 insert.append(a) 34 insert.append(b) 35 insert.append(c) 36 insert.append(d) 37 insert.append(e) 38 insert.append(f) 39 insert.append(g) 40 41 //インサート用クラスをインスタンス化しDBに挿入 42 let dataBaseManager = DataBaseManager() 43 dataBaseManager.insertPersonalData(insert) 44 45 46 } 47 48 49 }
swift
1 2class DatabaseManager{ 3 4 // Create Personal Table 5 func createPersonalDataBase() { 6 // /Documentsまでのパスを取得 7 let paths = NSSearchPathForDirectoriesInDomains( 8 .DocumentDirectory, 9 .UserDomainMask, true) 10 // <Application>/Documents/sample.db というパスを生成 11 let _path = paths[0].stringByAppendingPathComponent("sample.db") 12 13 // FMDatabaseクラスのインスタンスを作成 14 // 引数にファイルまでのパスを渡す 15 let db = FMDatabase(path: _path) 16 17 18 let sql = "CREATE TABLE IF NOT EXISTS Personal (a INTEGER, b INTEGER, c INTEGER, d TEXT, e TEXT, f TEXT, g TEXT);" 19 20 // Open DataBase 21 db.open() 22 23 if db.executeUpdate(sql, withArgumentsInArray: nil) { 24 print("Table Create Success") 25 } 26 27 // Close DataBase 28 db.close() 29 } 30 31 32 33 // Insert Personal Data 34 func insertPersonalData(insert: [AnyObject]) { 35 36 // /Documentsまでのパスを取得 37 let paths = NSSearchPathForDirectoriesInDomains( 38 .DocumentDirectory, 39 .UserDomainMask, true) 40 // <Application>/Documents/sample.db というパスを生成 41 let _path = paths[0].stringByAppendingPathComponent("sample.db") 42 43 // FMDatabaseクラスのインスタンスを作成 44 // 引数にファイルまでのパスを渡す 45 let db = FMDatabase(path: _path) 46 let sql = "INSERT INTO Personal (a, b, c, d, e, f, g) VALUES (?, ?, ?, ?, ?, ?, ?);" 47 48 db.open() 49 db.executeUpdate(sql, withArgumentsInArray: [insert]) 50 db.close() 51 } 52 53 54}
あなたの回答
tips
プレビュー