忍者ブログ
手記もいろんな都合でついに流行のブログ化。
[52] [51] [50] [49] [48] [47] [46] [45] [44] [43]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

 完全にメモがわりに。
最近進めていた作業で発覚した部分や勘違い、デバッグで判明した事実とかを書き残しておく。
多分、後々同じミスをやる気がするので。

確認できる方が楽ですよね。
備忘録だし。

+ + + + + + + + + +
 それでは雑多に。

・Auttoincrement属性は一度設定したらデータの送信は不要

Autoincrementの属性が適用されたカラムはカラムに情報を追加する際に、値の指定がなければ勝手に情報を入れてくれる。
これはオートインクリメント自体の仕様の関係。
つまり、NULLでも適当に送っとけば勝手にDB側が数字を判断して入れてくれる。

なお、データを削除した際に消した場所の数字を再度使用されたくない場合はprimary key属性を適用して再使用しないようにしておくこと。
こうしておかないと、欠番が発生した場合に新規データが登録されると、その番号を勝手に使ってしまう。
この場合はカラム自身を消してしまわないようにする、などの二次的な処理が必要。

なお、オートインクリメントは1テーブルにつき1カラムにしか適用できない。注意。
今回は1カラムでしか使わないのでこのミスはやらないと思うけど。


・PDOの「bindParam」は数値の直指定はできない?

bindParam自体はパラメータをクエリ生成に代入するものなんでしょーか。
NULL直打ちではダメだったのでこんな感じにするとうまくいった。
一部のみ抜粋。

//グローバル
$null = 'NULL'
//クエリ生成(prepare内部)
$stmt->bindParam(1, $null);

1番目のカラムはautoincrementで値を勝手に生成するので特に送信する必要がないためこういう処理を入れる。
まあ、ぶっちゃけここのカラムを空白のまま送信したほうがいいんだけど、今は便宜上すべてのカラムの情報を送信しているのでこういう処理に。
このあたりの挙動は多分また週末辺りに調査予定。

タイムスタンプも実は今は「now()」を送信しているのですが、属性次第では勝手に入れこんでくれるとのことなのでこちらも要調査。
不要なデータの送信はないほうがいいし。(バグの原因にならないという観点からも)


・DB内部のデータを表示するときは必ず「htmlspecialchars」を

これ、要するにhtmlタグやjabascriptの動作を防止するもの(文字列をタグ変換せずにそのまま表示するオプションみたいなモノ)なのだが、これを情報送信の際にかましても意味がないのと、例えば投稿の際の本文をhtmlで表示する場合にこれがないと勝手にタグが作動したりという大惨事が発生する可能性がある。
このオプションはDBへの送信時じゃなくて、htmlでの表示の時に使うように。

まあ、ちょっと考えればそうなんですけど意外に気づかないもんですよね。
この手のイージーミスって。とほほ。



とりあえずこんなもん。
形はできてきているので、後は細部の調整や削除キーの実装とかが出来ればひとまずの完成かな。
機能追加は色々するけど。
PR
この記事にコメントする
お名前
タイトル
文字色
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
フリーエリア
最新CM
[12/15 ありません]
[12/15 わかりません]
[12/15 age]
[12/15 age]
[12/15 俺だ]
[12/01 素人です]
[10/23 nemoto]
[10/14 猫]
[10/11 Megami]
[11/02 憐崎捺輝]
最新TB
プロフィール
HN:
憐崎捺輝
年齢:
36
性別:
非公開
誕生日:
1988/04/24
趣味:
主にゲームとか。
自己紹介:
職業学生。根っからのゲーマー。
そしてこれでも受験生。
勉強しないといけないのにしたくないジレンマ。
というか勉強できません、誰か助けて。
バーコード
ブログ内検索
カウンター
アクセス解析
Powered by ニンジャブログ  Designed by 穂高
Copyright © 憐崎電子文庫館・手記 All Rights Reserved
忍者ブログ / [PR]