+ + + + + + + + + +
それでは雑多に。
・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での表示の時に使うように。
まあ、ちょっと考えればそうなんですけど意外に気づかないもんですよね。
この手のイージーミスって。とほほ。
とりあえずこんなもん。
形はできてきているので、後は細部の調整や削除キーの実装とかが出来ればひとまずの完成かな。
機能追加は色々するけど。
・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
この記事にコメントする
カレンダー
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 憐崎捺輝]
最新記事
(10/19)
(09/13)
(06/24)
(06/14)
(06/07)
(05/24)
(05/20)
(05/19)
(05/18)
(05/17)
最新TB
プロフィール
HN:
憐崎捺輝
年齢:
36
HP:
性別:
非公開
誕生日:
1988/04/24
趣味:
主にゲームとか。
自己紹介:
職業学生。根っからのゲーマー。
そしてこれでも受験生。
勉強しないといけないのにしたくないジレンマ。
というか勉強できません、誰か助けて。
そしてこれでも受験生。
勉強しないといけないのにしたくないジレンマ。
というか勉強できません、誰か助けて。
ブログ内検索
最古記事
(02/03)
(02/03)
(02/04)
(02/04)
(02/05)
(02/08)
(02/13)
(02/13)
(02/18)
(02/28)
カウンター
アクセス解析