‘MySQL’ タグのついている投稿

MDB2での列名の注意点

2009年6月26日 金曜日

PHPとDBとの連携にて、クエリー結果を列名を指定して取得する場合、

MDB2を使うときと使わないときで、列名に違いがあった。

■MDB2を使わないとき

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$hoge = $row['Hoge'];
}

このときの列名は、クエリーの列名にあわせる!

※実際のテーブルの列名が小文字であろうが大文字であろうがクエリーの列名優先。

■MDB2を使うとき

while ($row = $result->fetchRow()) {
$hoge = $row['hoge'];
}

このときの列名は、必ず小文字にする!

※実際のテーブルとクエリーの列名が小文字であろうが大文字であろうが必ず小文字!

よりスマートなINSERT文

2009年6月24日 水曜日

データベースのSQL文を頂いて気が付いたのだが、今まで知らなかった。

こんな書き方があったのか!!

INSERT INTO テーブル名(列名, ・・・) VALUES

(値, ・・・),

(値, ・・・)

;

今までは下記のように同じ赤文字の部分を繰り返して記述してたので冗長だなとは思いつつも、

コピペだから気にしてなかった。

INSERT INTO テーブル名(列名, ・・・) VALUES (値, ・・・);

INSERT INTO テーブル名(列名, ・・・) VALUES (値, ・・・);

INSERT INTO テーブル名(列名, ・・・) VALUES (値, ・・・);

日付についての覚書

2009年6月5日 金曜日

PHPでは、タイムゾーンを設定しないと、デフォルトのUTC時刻になってしまう。

つまり、経度0度にあるイギリス・グリニッジ天文台の時刻(グリニッジ標準時; GMT)になる。

PHP内でタイムゾーンの設定を記述するには、

date_default_timezone_set('America/Los_Angeles');

のようにタイムゾーンを引数に渡す。

大陸別の完全なリストはこちら。

http://www.php.net/manual/ja/timezones.php

コンピュータから取得したい場合は「php.ini」を編集する。XAMPPでは、「C:\xampp\php」の中にある。

[Date]
; Defines the default timezone used by the date functions
;date.timezone =

コメントアウトをはずして、下記のようにして再起動

date.timezone = Asia/Kuala_Lumpur

■MySQL日付関数の違い

・日付+時刻系

NOW()

SYSTDATE()・・・NOW()のシノニム

・日付のみ系

CURDATE()

CURRENT_DATE・・・CURDATE() のシノニム

CURRENT_DATE() ・・・ CURDATE() のシノニム

■MySQLでの計算

ADDTIME(expr,expr2)・・・expr (日付時刻式)に expr2(日付式か日付時刻式) を加えた結果が返される。

ADDTIME(‘YYYY-MM-DD hh:mm:ss’ , ‘hh:mm:ss’)のようにする。

http://www.powerdee.com/it/mysql/sqlFunctions.html

が便利。