タグ

refとDBに関するglcsのブックマーク (8)

  • OracleではLimit句が使えない

    ページングでSelect結果の一部のデータをしたいとき、PostgreSQLMySQLで使用できるLimit句はとても便利。たとえばSelect結果の10から14番目までを取得するにはselect * from emp where Limit 10,5でもOracleではLimit句は使えない... ということでOracleではROWNUMを使用してやってみる。(Oracle10g Windows版で検証) ところがこのROWNUMは一筋縄ではいかないのであった。 Order By 句を使って並べ替えをすると、ROWNUMが...select rownum rn ,t.住所コード ,t.市区町村名 ,t.住所1 ,t.住所2 from tb_住所マスタ t order by 住所2;結果 RN住所コード市区町村名住所1住所2

    glcs
    glcs 2008/04/26
    不便
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • MySQLのUNICODEベースのDBが標準でUTF8文字コードを返してくれない不思議 [Archive] - XREA&CORE SUPPORT BOARD

    s278サーバーのXREA+でphpとの連携としてMySQLを使い始めた者です:o サーバーの各バージョンは以下の通りです。 PHP - 5.1.6 MySQL - 5.1.16-beta phpMyAdmin - 2.8.2 (s278サーバー登録、DB作成、phpmyadminインストール以外、操作は行っていません) データベースをUNICODEで作成し、UTF8コードの2バイト文字データを含むテーブルを作成しました。 (※テーブル中の文字コードがUTF8なのはphpmyadmin上から、またエクスポート等で確認) このテーブルから、phpを使いDBからUTF8コードの文字列データを取り出そうと、 例として以下のような必要最低限のプログラムを実行しました。 <? $con = mysql_connect('localhost','accoun

  • 変数バインディングを使ってもSQLインジェクション対策にならない - Webと何かとその近所

    気がつけば4半期に一度更新するかどうかという状況になっています。 書きたい事があっても、いざ書こうと思っていろいろ調べていると新事実が次々と浮かび上がり、結局書き終えるのに丸一日かかってしまったりして、挙げ句でき上がった文章があれなのでその出来映えに泣きたくなり、結局更新から遠ざかってしまうのです。 そうこうしているうちに、書こうと思っていた事と近い内容の記事をid:t_komuraさんの所で見つけたので思わずコメントしてしまいました。 すでにid:hoshikuzuさんによるまとめもありますが、コメントだけなのもあんまりなので敢えて書こうと思います。びっくりするほど時期逃し過ぎ。 MySQL 4.1以降での文字の扱い MySQLはバージョン4.1以降で文字の扱いが大きく変わりました。 それまでのMySQLは、クライアント側で使っている文字(バイトの並び)がそのままDBに格納され、取得する

    変数バインディングを使ってもSQLインジェクション対策にならない - Webと何かとその近所
  • SET NAMESは禁止

    (Last Updated On: 2018年8月13日)MySQLには文字エンコーディングを変更する「SET NAMES」SQL文が用意されています。(PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。 Ruby on Railsを読んでいて、ActiveRecordを説明している部分にMySQLの文字エンコーディングを変更する場合の例としてSET NAMESが利用されていました。アプリケーションからはSET NAMESは使ってはならない事を周知させるのは結構時間が必要かなと思いました。 PHPも5.2の途中からMySQLモジュールにlibmysqlの文字エンコーディング設定APIのラッパー関数が

    SET NAMESは禁止
  • utf8_general_ci と utf8_unicode_ci の違い - Ceekz Logs (Move to y.ceek.jp)

    以前までは、データベース MySQL を利用したアプリケーションを作るときは、文字コードとして EUC-JP を利用していました。最近は、国際化との兼ね合いなどから UTF-8 を利用するようにしています。 MySQLUTF-8 を扱う場合、照会順序として utf8_bin を使用していました(何も考えずに)。 utf8_bin の場合、部分一致探索 LIKE などの使用時に英字の大文字小文字が区別されてしまう。大文字小文字を区別されないようにするためには、照会順序として utf8_general_ci を使用すればよいのですが、他にも utf8_unicode_ci があることに気がつきました。 utf8_general_ci と utf8_unicode_ci では、どこが違うのだろう? utf8_general_ci also is satisfactory for both

    glcs
    glcs 2008/03/21
    誰かが作ったDBでテーブルごとにutf8_general_ciとutf8_unicode_ciが混在していて結合時にエラーが生じて困った
  • [Think IT] 第7回:トリガ (1/4)

    「第6回:ストアドプロシージャ」では、データベースサーバ内で動作するアプリケーションとしてストアドプロシージャを取り上げました。このストアドプロシージャと同様に、データベースサーバ内で動作するアプリケーションの代表格に「トリガ」があります。 そこで今回はこのトリガを取り上げ、PostgreSQLMySQLの違いを説明します。 「トリガ」とは、データベースに対して何らかの処理が加えられたときに、その処理をきっかけとして事前に用意したプログラムを自動的に起動する機能およびそのプログラムのことです。トリガは特殊なストアドプロシージャの一種で、処理の内容と起動する条件、実行するタイミングなどを指定し、設定を行います。 実はこれまでトリガを使用できたのはPostgreSQLで、MySQLでは使用できないといわれていました。しかしストアドプロシージャと同様に、MySQLのバージョン5.0においてトリ

    glcs
    glcs 2008/03/18
    MySQLとPostgreSQL,トリガ
  • ADODB Manual

    PHPのためのADOdbライブラリ original document ADOdb関連文書 V4.62 2 Apr 2005 (c) 2000-2005 John Lim (jlim#natsoft.com) このソフトウェアはBSDスタイルとLGPLを使いデュアルライセンスされています。これはコンパイルされて所有権のある市販製品で使えることを意味しています。 役に立つADOdbのリンク: Download   Other Docs 序文 ユニークな特徴 どんなふうに人々はADOdbを使っているか 機能要望とバグ報告 インストール 最小インストール コードの初期化とデータベースへの接続 データソース名(DSN)   接続例 高速ADOdb - チューニングTips 安全なADOdbのハッキングと変更 PHP5の機能 foreach i

  • 1