質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

0回答

1892閲覧

FMDBを用いて配列をDBにインサートする方法

lyzmfeqpxs54

総合スコア237

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/08/17 01:04

編集2016/08/17 08:51

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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問