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

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

関連記事

phpのsnappyで複数のwebサイトのサムネイルを保存する

概要 前回、snappyの基本的な使い方を試しました。 今回はsnappyを使って、あらかじめ、定義してある複数のwebサイトのサムネイルを保存してみたいと思います。 前提 composerがインスト …

ruby on railsに最強のwysiwygエディタ、Squireを導入する

概要 みなさんこんにちはcandleです。今回はruby on railsにsquire editorを導入したいと思います。 squireはオープンソースの便利なwysiwygエディタです。 カスタ …

railsのaws-sdk gemを使ってs3のファイルを削除する

by martinak15 概要 みなさんこんにちはcandleです。今回はs3にアップロードされている画像ファイルをrailsのaws-sdk gemを使用して削除してみたいと思います。 記事中で開 …

cakephp2.5.6をfabric+cuisineを使用してインストールする

概要 みなさんこんにちはcandleです。今回はcakephp2.5.6の環境構築をfabricを使用して、インストールしてみましょう。cakephpはrailsと比べると100倍くらい簡単に環境構築 …

railsのsimple-captcha gemを使用してform_forを使ったフォームを画像認証する

概要 みなさんこんにちはcandleです。公に開かれたフォームはスパムや総当り攻撃を受けやすいです。 そこで、画像認証を導入して、悪意のあるフォームを拒否してみましょう。 simple-captcha …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ