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
CakePHPは、PHP言語の高速開発用フレームワークです。日々、発展を遂げる各種フレームワークの動向を見極めつつ、日本発のCakePHP応援ブログとして、最新情報をお届けします。 PHPのセキュリティに詳しい大垣さんのブログ SET NAMESは禁止 (引用) ============ 脆弱性の説明は面倒ですが注意事項は簡単です。「DBMSをアプリケーションから利用する場合、文字エンコーディング設定は必ずAPIを利用する」つまり「SET NAMES(SET CLIENT_ENCODING等も)は禁止」です。 ============ 日本語以外の記事では、「SET NAMESを使ってはいけない」とまで書いている記事が見つからなかったので、いまだすんなりと納得できていないのですが、今後、MySQL 4.1以上を入れた共有サーバなんかではどうすればいいんでしょうか…。 “SET NAMES
気がつけば4半期に一度更新するかどうかという状況になっています。 書きたい事があっても、いざ書こうと思っていろいろ調べていると新事実が次々と浮かび上がり、結局書き終えるのに丸一日かかってしまったりして、挙げ句でき上がった文章があれなのでその出来映えに泣きたくなり、結局更新から遠ざかってしまうのです。 そうこうしているうちに、書こうと思っていた事と近い内容の記事をid:t_komuraさんの所で見つけたので思わずコメントしてしまいました。 すでにid:hoshikuzuさんによるまとめもありますが、コメントだけなのもあんまりなので敢えて書こうと思います。びっくりするほど時期逃し過ぎ。 MySQL 4.1以降での文字の扱い MySQLはバージョン4.1以降で文字の扱いが大きく変わりました。 それまでのMySQLは、クライアント側で使っている文字(バイトの並び)がそのままDBに格納され、取得する
(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のラッパー関数が
以前までは、データベース MySQL を利用したアプリケーションを作るときは、文字コードとして EUC-JP を利用していました。最近は、国際化との兼ね合いなどから UTF-8 を利用するようにしています。 MySQL で UTF-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
「第6回:ストアドプロシージャ」では、データベースサーバ内で動作するアプリケーションとしてストアドプロシージャを取り上げました。このストアドプロシージャと同様に、データベースサーバ内で動作するアプリケーションの代表格に「トリガ」があります。 そこで今回はこのトリガを取り上げ、PostgreSQLとMySQLの違いを説明します。 「トリガ」とは、データベースに対して何らかの処理が加えられたときに、その処理をきっかけとして事前に用意したプログラムを自動的に起動する機能およびそのプログラムのことです。トリガは特殊なストアドプロシージャの一種で、処理の内容と起動する条件、実行するタイミングなどを指定し、設定を行います。 実はこれまでトリガを使用できたのはPostgreSQLで、MySQLでは使用できないといわれていました。しかしストアドプロシージャと同様に、MySQLのバージョン5.0においてトリ
MySQLを新しく購入したVistaにインストールしようとしたら、インストールは完了するものの設定ができない。MySQLのバージョンは5.0.51a。 設定用のMySQL Server Instance Config Wizardを立ち上げようとすると以下のようなエラーが表示される。 「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照してください。」 困ったのでアンインストールして別のインストールファイルをダウンロードして実行しても同じ。このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。」との表示。 困ったので検索していると以下のURLが答えを教えてくれているので早速ためしてみる。 http://forums.mysql.com/read
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
オープンソースでフリーな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モデル図の同期化機能 軽快
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
こんにちは satoです。 オペミスで update に where句を付け忘れたり、プログラムのバグでデータが破損してしまったりした場合でも、バイナリログには更新SQLがすべて書き込まれるので、バックアップデータからオペミスが起こるまでの全てのSQLを流し込めれば、元の状態に戻すことは可能です。 •バイナリログを取っている •オンラインバックアップをとっている(mysqldumpやMySQLを止めた状態でのcpによるバックアップとバイナリログ) •バックアップ時点でのバイナリログの書き込み位置を保存している 以上のような状態でデータが壊れた時の復旧手順をまとめてみました。シナリオとして •ある1カラム email をupdateしようとしたら、間違ってwhere 句を付け忘れ 全レコードをupdateしてしまった •気がついたのが半日後 というオペミスが発生したとします 1) データベー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く