GolangTips(Gunosy.go#13) 調べ物しましたので。
QConTokyo ( http://www.qcontokyo.com/KotaUENISHI_2015.html ) の発表スライド
はじめに 前回からシリーズでお送りしている「PHPからMicrosoft SQL Serverを使おう!」、第2回目は、PHPコードからのMicrosoft SQL Server(以下 SQL Server)への接続についてです。 今回の記事では、マイクロソフトがPHP向けにリリースした、SQL Server Driver for PHPドライバーの入手とインストール、実際にPHPのコードからSQL Serverに接続するための方法について紹介させていただきます。 1 PHPコードからSQL Serverへの接続 1.1 PHPコードからSQL Serverへ接続するための手段 PHP 5.2までのPHPランタイムには、SQL Serverに接続するためのMssql関数(php_mssql.dll)が用意されており、アプリケーションはこれを使用してSQL Serverに接続することができま
寒くなるとプログラムをやりたくなるのか、ここ数日はRubyな日々が続いていて、今回は前回と同じ題材で勉強会関連のJSONを引っ張ってくるアプリですが、複数のウェブからとなるとやっぱりDBは必須となってくるわけで、WebとDBの連携を自分でやるのは初めてなので試行錯誤な感じが続きましたがやっと出来上がりました。 やっぱりDBを勉強する。というよりも必要なのでDBを勉強したという事象の方が自分には性に合っているようだ。 mysql を使ってみようナウいものはmysql2というやつらしく、早速Gemで入れようとしたら libmysqlclient-devというパッケージが必要でした。 $ gem install mysql2 Building native extensions. This could take a while... Successfully installed mysql2-
うーん。MySQLのバグなんだろうか、一度DELETEしたuserと同じ名前のuserを登録しようとすると失敗する。 やったことはこう。 DELETE 構文で user 'boss' を削除する。 mysql> DELETE FROM mysql.user WHERE user='boss' and host='localhost'; CREATE USER 構文で boss を再度作ろうとしたが、失敗。 mysql> CREATE USER 'boss'@'localhost' IDENTIFIED BY 'password'; ERROR 1396 (HY000): Operation CREATE USER failed for 'boss'@'localhost' MySQLクイック・リファレンスによると、 本来のユーザ削除はこうらしい。先にREVOKEをやらなかったからいけないの
var $default = array( 'datasource' => 'Database/Postgres', 'persistent' => 'false', 'host' => 'localhost', 'port' => '5432', 'login' => 'user_name', 'password' => 'password', 'database' => 'test_db', 'schema' => 'public', 'prefix' => '', 'encoding' => 'utf8' ); MySQLの場合チュートリアル通りにやれば問題無いが、 PostgreSQLではportとschemaを指定しないと以下のようなエラーになる。
さらば、愛しき論理削除。MySQLで大福帳型データベースを実現するツール「daifuku」を作ってみた 先のエントリ「論理削除はなぜ「筋が悪い」か」で書いたとおり、データベースに対して行われた操作を記録し、必要に応じて参照したり取り消したりしたいという要求は至極妥当なものですが、多くのRDBは、そのために簡単に使える仕組みを提供していません。 daifukuは、RDBに対して加えられた変更をトランザクション単位でRDB内にJSONとして記録するためのストアドやトリガを生成するコマンドです。 % daifuku dbname tbl1 tbl2 > setup.sql のように実行すると、指定されたテーブル(ここではtbl1とtbl2)にセットすべきトリガや、更新ログを記録するためのテーブル「daifuku_log」を生成するCREATE TABLEステートメントなど、必要なSQL文をset
Kazuhoさんの論理削除はなぜ「筋が悪い」かを読んで。 UPDATEが発生しないテーブルならば、削除フラグを使った実装手法でも現在の状態と更新ログを別々に表現でき、結果として効率と過去の情報を参照できるメリットを簡潔に両立できるのではないか、という話。 大前提として全く同意なのだけども、今あるテーブルにdeleted_atを足すだけで、過去のレコードを復旧可能なようにしたい>< みたいに思っちゃった僕のような人間が実際に取るべき実装手法は何か、あるいは、それを想定して今やっておくべきテーブル設計はどういうものか!?というのが最後の疑問。 まずUPDATEがなければ、immutableなマスタ、更新ログ、「現時点のビュー」の3テーブルは、例えば次のようになる(PostgreSQLの場合): -- immutableなマスタ。 create table records ( id serial
今日朝イチで見たエントリーがこれでした。 qiita.com 論理削除の弊害は色々なところで言われているけど、僕の足りない頭で理解している所によると、二つの値しか持たない削除フラグ的なものはカーディナリティが云々で検索条件につけても性能上的にもよくないし、意味がないということです。 論理削除を完全に悪だとは言いませんが、論理削除を極力排したい人たちは、基本的にデータそのものを削除する、もしくは論理削除というのはまだ要件的に未確定な要素が隠されていることを示すフラグであると考えているようです。 僕がITの業界でキャリアをスタートしてから2年目くらいに配置されたプロジェクトではT字型ER手法というのをベースにしたテーブル設計をしていて、そこでかなり鍛えられたわけですが、その時にはだいたいこのような原則を叩きこまれました。 テーブルに状態を持たせない 究極には機械が認識するキーと、人間にとって意
RailsがMySQLのcollationをサーバー側のデフォルトのutf8_general_ciからutf8_unicode_ciにわざわざ変えてるのどうせ大した理由じゃないだろと思って掘ってみたらやっぱり大した理由じゃなかった… https://t.co/6NeetGhTF0— Ryuta Kamizono (@kamipo) April 18, 2014 Railsでcollationとしてutf8_unicode_ci(RailsのDEFAULT_COLLATION)が採用されるのはcharsetが未指定もしくはutf8(RailsのDEFAULT_CHARSET)のときだけで、utf8mb4にすることとかは全く考慮されてない。— Ryuta Kamizono (@kamipo) April 19, 2014 @frsyuki MySQLのcharset utf8のときのデフォルト
いろいろと原則論はあるんですが。昨今のアプリケーションは複雑化し、扱う情報はよりセンシティブになり、そしてより幅広く使われるようになっています。よって「安全な」アプリケーションを作るために必要な知識はますます増える傾向にあります。 よく分かってない人は以下のことにとりあえず気をつけましょう 1. なるべく自分で作らない これは最も重要なことです。検索する、他人に聞く、自分で考えない。これは重要です。大抵の問題は他人が作ってくれた解決策を適用できます。 例えばセキュアな問合せフォームを作ることにしましょう。気をつけるべきことは以下のことぐらいでしょうか。 送信内容の確認画面を表示する場合、ユーザーの入力した値は適切にエスケープするように 送信内容をアプリケーションの DB に格納する場合には SQL インジェクションを防がなければならないので、プリペアドステートメントを用いる CSRF 対策
リレーションシップを作りたい場合は以下のように getMany() メソッドを使って実装します。この場合、Category : Item が一対多のリレーションシップを持ちます。 @Table(name = "Categories") public class Category extends Model { @Column(name = "Name") public String name; public List<Item> items() { return getMany(Item.class, "Category"); } } 保存・更新・削除・クエリ 作成したモデルクラスを使って DB に保存したりクエリで取得したりするには以下のように実装します。これぞ ActiveRecord スタイル。見やすく分かりやすく素晴らしいですね! // 保存 Item item = new Ite
皆様はじめまして、spicelifeエンジニア@yuki3738と申します。 あけましておめでとうございます。本年も弊社サービスのtmixと\SPOTLIGHTS/をよろしくお願い申し上げます。 さて年末のことではありますが、なんとわたくし皆様が大好きなあのフレームワーク、Ruby on Railsにコントリビュートをしました。 今回はエンジニア歴約半年の私がどんなインチキ経緯があってコントリビュートにまで至ったのか、またそれによってどんな学びがあったのかをお話ししたいと思います。 rails dbができない 事の発端は弊社プロダクトの一つであるtmixのdbの中を見ようとrails dbコマンドを叩いたことから始まります。 Railsエンジニアだったら確実にお世話になるであろうこのコマンド、なぜかわたしのtmixのリポジトリでは起動することができませんでした。 rails dbを入力する
注意(2016/01/29追記) Parseサービスの終了が発表されました。 利用できるのは2017/01/28までだということです。 Facebook Shutters Its Parse Developer Platform | TechCrunch http://techcrunch.com/2016/01/28/facebook-shutters-its-parse-developer-platform/ Moving On http://blog.parse.com/announcements/moving-on/ こんなに便利なサービスが終了してしまうのは残念でなりません。。 (一応ParseサーバーとMongoDBのマイグレーションツールが公開されるということなので 自前サーバーで管理すればParseと同じようなものを動作させることは可能かもしれません。) 背景 最近個人で掲
Unityを使ってAndroid/iOS用アプリを作っています。日々調べたことやつまづいたことをメモ。 データベースが使いたくてSQLiteOpenHelperのonCreateでテーブルつくってデータインサートしてってやってたんだけど、さすがにめんどい。 jsonファイルをassetsに置いてonCreateでデータベースに入れ込むとかもやってみたけど、なんか遅い。 って思ってたらすごくいい記事書いてるサイトを発見。 [Android Programming] sqliteのDBファイルをPCでつくってandroidで使う やりかた ざっくり言うと、PCでSQLiteのDBファイル作ってassetsフォルダ突っ込む。SQLiteOpenHelperのgetWritableDatabaseのタイミングでDBをコピー。 (俺はgetReadableDatabaseでもコピーするようにした)
一般的なデータベースでは、カラムごとにデータ型を指定し格納できる値が決められていますが、SQLiteでは、テーブルを作成するときに、データ型を指定しなくても良い寛大な設計になっているところも特徴的な部分です。 それでは、SQLiteの使い方をご紹介します。 今回も例として上げているコードは、サンプルプログラムとして以下からダウンロードできます。 サンプルプログラム 実行画面 ヘルパークラスの実装 SQLiteOpenHelperというヘルパークラスを継承してDBOpenHelperクラスを作成します。 SQLiteOpenHelperクラスのコンストラクタには、第一引数にContext、第二引数にデータベース名、第三引数にCursorFactory、第四引数にデータベースのバージョン番号といった値が渡します。 public DBOpenHelper( Context context ) {
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く