カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

MySQL テーブルをコピー

テーブルをデータも含めて丸ごとコピーするには

CREATE TABLE new_example LIKE example;
INSERT INTO new_example SELECT * FROM example;

MySQL 4, MySQL 5で確認済

MySQL 3の場合、上記は利用できないので、以下のようにします。

CREATE TABLE new_example AS SELECT * FROM example;

※主キー・インデックス等はコピーできません。
続きを読む…»

2,017 views

ブラウザの戻るでもフォームの値を保持する

HTMLでフォームを設置したとき、フォームに内容を入力し、内容確認などするようにしたところ、
ブラウザの戻るで入力画面に戻ると入力していた内容がクリアされてしまう、ということがあるかと思います。

ユーザービリティを考慮すると、入力した内容は残っていたほうがよい。
そこで以下のような方法があります。

PHPのセッションを使用している場合、session_start関数の前にsession_cache_limiter関数を実行します。
特にPHPのセッションを使っている場合はキャッシュが無効になっているようです。

session_cache_limiter("private_no_expire");
session_start();

キャッシュ指定をヘッダー出力

header("Cache-Control: Private\n");
10,061 views

テーブルの不一致データ参照

テーブルAにあってテーブルBにないデータを見つけたいとき、
ACCESSでいうところの「不一致クエリ」を使います。

select TABLE_A.* from TABLE_A 
left join TABLE_B on TABLE_A.ID = TABLE_B.ID 
where (TABLE_B.ID Is Null);
4,780 views

getimagesize

$data = getimagesize($filename);
$data[0] = 幅
$data[1] = 高さ
$data[2] = 画像種類(gif:1,jpg:2)
$data[3] = 高さ="" 幅=""
$data["bits"] = ビット/ピクセル
$data["channels"] = チャンネル
$data["mime"] = MIMEタイプ
1,039 views

ファイルアップロードの最大サイズを変更

フォームよりアップロードできるファイルの最大容量を変更したいとき、
php.iniで以下の設定を変更します。

upload_max_filesize

1つのファイルアップロードに許可される最大サイズ
デフォルト:2M 40M

upload_max_filesize = 40M
post_max_size

POST送信できる最大サイズ
デフォルト:8M 40M

post_max_size = 40M
memory_limit

メモリ使用量の制限
デフォルト:128MB 512MB
-1にすると無制限

memory_limit = 512MB
max_execution_time

タイムアウト秒数
デフォルト:20 120
0にすると無制限

max_execution_time = 120
max_file_uploads

1回の送信で送れるファイルの個数
デフォルト:20
※こちらについてはphp.ini、もしくはApacheのhttpd.conf(extra/httpd-vhost.conf)でないと設定できません。

max_file_uploads = 150

memory_limitpost_max_sizeupload_max_filesizeについては以下のような関係になるよう設定してください。

memory_limit > post_max_size > upload_max_filesize

Apacheで設定する

<Directory "/var/www/html">
    php_value memory_limit 128M
    php_value max_execution_time 0
</Directory>

.htaccessファイルで設定することも可能です。

php_value memory_limit 128M
php_value max_execution_time 0

最後に

変更した後は忘れずにApacheを再起動しましょう。

2,675 views