タグ

MySQLに関するglcsのブックマーク (14)

  • てくてくjp - 「てくてくjp」は閉鎖いたしました。

    glcs
    glcs 2008/03/30
    CONCATで文字列を結合する時に何れかのフィールドがNULLの場合に全体がNULLになってしまう問題を解決する方法
  • 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

  • SET NAMESは禁止?

    CakePHPは、PHP言語の高速開発用フレームワークです。日々、発展を遂げる各種フレームワークの動向を見極めつつ、日発のCakePHP応援ブログとして、最新情報をお届けします。 PHPセキュリティに詳しい大垣さんのブログ SET NAMESは禁止 (引用) ============ 脆弱性の説明は面倒ですが注意事項は簡単です。「DBMSをアプリケーションから利用する場合、文字エンコーディング設定は必ずAPIを利用する」つまり「SET NAMES(SET CLIENT_ENCODING等も)は禁止」です。 ============ 日語以外の記事では、「SET NAMESを使ってはいけない」とまで書いている記事が見つからなかったので、いまだすんなりと納得できていないのですが、今後、MySQL 4.1以上を入れた共有サーバなんかではどうすればいいんでしょうか…。 “SET NAMES

    SET NAMESは禁止?
  • 変数バインディングを使っても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,トリガ
  • MySQL Windows Vistaでのインストールエラー - journal de kyart プログラマ/通訳の備忘録

    MySQLを新しく購入したVistaにインストールしようとしたら、インストールは完了するものの設定ができない。MySQLのバージョンは5.0.51a。 設定用のMySQL Server Instance Config Wizardを立ち上げようとすると以下のようなエラーが表示される。 「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照してください。」 困ったのでアンインストールして別のインストールファイルをダウンロードして実行しても同じ。このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。」との表示。 困ったので検索していると以下のURLが答えを教えてくれているので早速ためしてみる。 http://forums.mysql.com/read

    MySQL Windows Vistaでのインストールエラー - journal de kyart プログラマ/通訳の備忘録
    glcs
    glcs 2008/03/16
    この方法でインストールできた
  • Solaris 10 | Shinta's Site

    Solaris 10 に、 MySQL をインストールする方法や PHP や Apache をインストールする方法 をまとめてあります。 Solaris 10 のパッケージに含まれている gcc (GNU Compiler Collection) は /usr/sfw/bin にコマンドがあるので、環境変数PATH に登録しておくとよいでしょう。また、/usr/sfw/lib にインストールされている多くのライブラリを gcc はそのまま利用できます(LD_RUN_PATHを指定する必要がありません)。 Solaris 10 にて gcc を利用して MySQL などをコンパイルする場合、libstdc++.laの内容が空であるために出力される "libstdc++.la is not a valid libtool archive" エラーに対処しておかなければなりません。(Solari

  • MySQL :: MySQL Forums

  • bnote File Not Found!

    ただいまページメンテナンス中です。htmlをshtmlとすることで目的のページに アクセスできるかもしれません。 あなたがアクセスしたページ(URL)は、存在していないか、変更されました。 メインページに戻って、もう一度アクセスしてください。 もしこの問題が続くようでしたら、管理者に通知してください。 Thank You www.bnote.net

  • トップページ - DB Designer 4 日本語化サイト

    オープンソースでフリーなER図作成ツール「DBDesigner4」の日語化を試みるサイトトップページ このサイトについて bookmark このサイトはfabForceで公開されているDBモデリングツール「DB Designer 4」の日語化を試みるサイトです。 個人が運営するサイトなので公式なサイトではありません。 「DB Designer 4」はGPLライセンスで公開されているオープンソースソフトウェアです。 「DB Designer 4」についての詳細情報は家サイトをご参照ください。 fabFORCE.net DBDesigner4の特徴 bookmark 直感的なGUIによるERモデル図のモデリング ERモデル図からSQL文(CREATEやDELETE)の自動生成 データベースからリバースエンジニアリングによるERモデル図の生成 データベースとERモデル図の同期化機能 軽快

    glcs
    glcs 2008/02/11
    わけわからない手製の図を見せられるよりこれに突っ込んだほうが早いかもしれない
  • DBDesigner 4

    General Information - What is DBDesigner 4? DBDesigner 4 is a visual database design system that integrates database design, modeling, creation and maintenance into a single, seamless environment. It combines professional features and a clear and simple user interface to offer the most efficient way to handle your databases. DBDesigner 4 compares to products like Oracle's Designer�, IBM's Rational

    glcs
    glcs 2008/02/11
    なるほど、こういうのもあるのか。
  • ウノウラボ Unoh Labs: MySQL オペミスでデータが破損してしまった場合の復旧方法

    こんにちは satoです。 オペミスで update に where句を付け忘れたり、プログラムのバグでデータが破損してしまったりした場合でも、バイナリログには更新SQLがすべて書き込まれるので、バックアップデータからオペミスが起こるまでの全てのSQLを流し込めれば、元の状態に戻すことは可能です。 •バイナリログを取っている •オンラインバックアップをとっている(mysqldumpMySQLを止めた状態でのcpによるバックアップとバイナリログ) •バックアップ時点でのバイナリログの書き込み位置を保存している 以上のような状態でデータが壊れた時の復旧手順をまとめてみました。シナリオとして •ある1カラム email をupdateしようとしたら、間違ってwhere 句を付け忘れ 全レコードをupdateしてしまった •気がついたのが半日後 というオペミスが発生したとします 1) データベー

  • 1