カテゴリー『 未分類 』

≒ さくらインターネットではInnoDBは使用不可!

表題の通り。模擬ECサイトで使用するので作ったテーブル全部がMyIsamエンジンになってたので、「設定間違えたかな」ってテーブル設定ファイル確認したらちゃんと書いてある。
これはさくらの設定だな、と思いmy.cnf探すと見つからない。で、グーグル先生に聞くと「変更の仕方」って答えはなく、「my.cnfはいじれない」ってのしか見つからず。
じゃあInnoDBはどう使うのよ!ってさらに探すと期待した「InnoDBを使う裏ワザ」みたいのは無くて、とどめの公式FAQ「InnoDBは使えません」ってページ発見。非公式FAQでもはっきり不可と書いてある。
これは決定的な使用制限だな。月500円だから仕方ないけどほんとにびっくりした。仕事では使えないですね。良く覚えとこう。

≒ 模擬ECサイト完成

ECサイト一応完成。
検定受験勉強前も含めて、ほぼ3週間。時間かかりすぎだけど勉強になった。
「リンク」に追加しましたので、奇特な方は見てやってください。
基本通りユーザーパスは暗号化してデータベース格納し、データベース周りはアクセス制限掛けた上でツールフォルダにもパス設定してますので、本気で破りにかからないと(さくらインターネット全体のセキュリティ破るくらいのレベルでないと)データは流出しないのでは無いかと思いますので、ユーザー登録して色々遊んで行ってやってください。
HTTPS接続ではないので、スニフ対策はできてませんが、それは非商用ということでよろしくお願いします。
実際に仕事で使うならそんなこと言ってられないんだよね。つーかHTTPS接続にしてみるか?後日やってみます。
次は予定のPHPサニタイズのブラッシュアップより先に、UI周りをいじっていきます。ここ2週間PHP漬けだったんでそろそろJSにもう一度没頭したいのですよ。
でもその前に完全に完成するため(えっ)にやることメモ。

  • まだ打ち込んでない管理関係コード*4を打ち込む
  • 「注文履歴」ページ。個別の「詳細表示」とそこからの「お問い合わせメール送信」を追加
  • 「最近チェックした商品」データのデータベース保持(ログインで表示)

UI周りでは「ユーザー登録」ページにバリデーションの仕組みを付けまくる。基本ですし。
当然、郵便番号→住所の順引き、逆引きも付ける。あと「入力文字種制御」も付けたい。webのシステムでは何か難しいことがあるみたいだけど、PCのレガシーアプリだと当然の機能、webアプリだと無いことが多くて気になってたのですよ。
以上。期限は1週間強。締め切りは12月7日!

≒ データベースのカラム名

MySQLのテーブル「○○_users」と「○○_shipping」。その名の通り会員情報と出荷情報のテーブルなんだけど、両方でカラム名に「state」ってのがある。
ここまでで想像がつくように値の操作で失敗。shippingテーブルにusersテーブルをLEFT JOINしてSELECT *。
その結果のstateの値はどちらのものでしょうか。

今日失敗する前の僕なら、先に呼んでるし、左外部結合だし、迷わずshippingって答えるんだけど、正解はusersだった。
解決は「select *,○○_shipping.state」でいけた。けど上書き気持ち悪いね。

今後、カラム名は必ず「テーブル名_カラム名」って付けよう。それとももっと良い方法があるのかな?