joppot

コピペで絶対動く。説明を妥協しない

プログラミング

MAMPのSQLiteManagerを使用してsqlite3のテーブルの作成とフィールドの設定、レーコードの挿入を試す

投稿日:2014年2月7日 更新日:

Pocket

f

概要

みなさんこんにちはcandleです。前回と引き続き、SQLiteManagerを使用してsqlite3を試してみましょう。

はじめに、書いておきますが、MAMPのSQLiteManagerはSQLite3に対していくつかバグがあり、phpが動作しなかったり、レコードが削除できなかったりします。

対処法としては、自分で別のSQLiteManagerを入れるなどあるかもしれませんが、別に全ての動作をSQLiteManagerでやらなければよい話です。必要とあらば、SQLクエリーをなげたり、自分でphpアプリケーションを作ればなんとかなります。

 

前提

PHPが5.3以上上である
SQLite3のデータベースが作られている
もしも、データベースが無い場合はこのブログの前回の記事を参照してください。
MAMPのSQLiteManagerを使用してsqlite3データベースの作成とデータベースファイルの設置

 

SQLiteManagerでテーブルを作る

それでは簡単なテーブルを作りましょう。よくあるthreadテーブルを作ります。

要素はid、name、title、content、created、modifiedにします。

名前の項目に「thread」と書き、フィールド数は6にします。そしたら、実行を押しましょう。

MAMP-6 2

一つ一つ埋めていきます。
idはint型でnot null でプライマリーにしておきます。]
nameはvarchar型で長さを255にします。
titleもvarchar型で長さを255にします。
contentはtext型にして長さは指定しません。
createdはdatetimeを指定して、not nullにします。
modifiedはtimestamp型でnot nullにします。

MAMP_と_MAMPのSQLiteManagerを使用してデータベースの作成とファイル設置__odt_-_OpenOffice_Writer

記入できたら、保存を押しましょう。

下のような画面が出たら成功です。

MAMP_と_MAMPのSQLiteManagerを使用してデータベースの作成とファイル設置__odt_-_OpenOffice_Writer 2


レコードを挿入する

ではthreadテーブルにサンプルデータを挿入しましょう。
「挿入」タブを選びます。

MAMP-5

idにあるnullの所のチェックを外します。idの値は「1」にします。
nameの値は例として「candle」にします。
titleの値は「hello」
contentの値は「good job!」

で、ここに1つバグがあります。
createdとmodifiedの値は「関数」からNOWを指定して、SQLiteに現在時刻を挿入してほしいのですが、SQLite3を使用しているとこのコマンドが動作しません。手で書いて入力します。

createdの値は「2014-02-03 12:30:25」と入力します。
modifiedですがこれもバグがあります。modifiedの値はcreatedと同じですが、クォーテーションで囲いましょう「’2014-02-03 12:30:25’」
下の様に記入したら、保存を押しましょう。

MAMP

レコードが保存されたら、成功です。

MAMP 2

今後のために、もう2つほどレコードを挿入しておいてください。SQLタブを押しましょう。

MAMP-5 2

下のsqlクエリーをコピペします。で次が重要です。

INSERT INTO 'thread' ( 'id' , 'name' , 'title' , 'content' , 'created' , 'modified' ) 
VALUES ( 2 , 'bob' , 'morning' , 'sleepy' , '2014-02-03 13:15:51' , '2014-02-03 13:15:51');
INSERT INTO 'thread' ( 'id' , 'name' , 'title' , 'content' , 'created' , 'modified' ) 
VALUES ( 3 , 'アリス' , '納豆' , '日本語も使えるよ' , '2014-02-03 15:43:16' , '2014-02-03 15:43:16');

コピペしたテキストエリアは狭いので複数行に改行されますが、これをそのまま実行するとこの改行までデータベースに収まり、正しく値が認識されません。なんでこんなエラーがあるのか分かりませんが、すごく変なバグです。下の図を見てください。modifiedの2014-02-03 15:43:16途中で改行されています。これでは問題なので、テキストエリアの右下をマウスで持って広げてください。

MAMP 3

広げたら下の様になると思います。
途中で改行されてないことを確認したら、「実行」ボタンを押しましょう。

MAMP 5

確認しましょう。

MAMP 4


まとめ

この他の機能はいろいろ試してみれば分かると思います。とにかく、MAMPのSQLiteMangerはバグが多いので注意しましょう。レコードのアクション欄のレコードのデリートはsqlite3だとうまく動きませんので、SQLクエリーを発行して消したりしましょう

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-プログラミング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

wordpressのbogoプラグインのショートコードをカスタマイズする

English 日本語 概要 みなさんこんにちはcandleです。 今回はwordpress bogoのショートコードをカスタマイズしてみたいと思います。 紹介する項目は以下の2つです。 国旗の表示、 …

fluentdでrails logをtailで直接取得する方法

概要 追記) この記事はだいぶ古くなってしまったので、新しく書き直しました。 こちらの方を参照した方が多分良いことが書いてあります。 https://joppot.info/2017/03/17/35 …

railsのfluent-loggerとdevise gemを使ってユーザーの行動をfluentdサーバに収集する

概要 fluentdと言えば、ビックデータで扱うようなデータを集め出力するサーバですが、これとrailsのfluent-logger gemとdevise gemを組み合わせてユーザーの行動ログをとっ …

railsのroutesでhttpのGETやPOSTを指定してルーティングを表示する

概要 みんさんこんにちはcandleです。今回は少し頭をひねれば分かる事ですが、少し迷ったので、記事にまとめました。 railsですごいwebアプリケーションを作っていると、ルーティングが複雑きわまり …

railsのrakeで作成したカラムの型とdefault値を変更する方法

概要 みなさんこんにちはcandleです。今回はrakeコマンドのややこしいところを扱います。 rakeコマンドはわりと便利で、データベースのカラムの追加や型の変更をマイグレーションファイルから読み込 …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ