2010/11/29

oscommerceのalterをPHP5 Mysql5に書き換え

そろそろサーバーの方もphp5とMysql5を推奨してきているので
コチラも対応してゆかないと面倒だ。
サーバーで利用出来るバージョンは
  • Mysql5.077
  • PHP5.1.6推奨
  • PHP5.2.14
  • PHP5.3.3
どうせなら一番最新のバージョンでトライしようと思う

DBの文字コードは特に海外向けということもないのでEUCのまま。
UTF-8化はmb_stringとかややこしいのでそっとしておく。

こうなると基本的に直す箇所は2カ所。

DBにクエリを送っている箇所で left join を使用しているところ。
これのfromからleft joinを括弧でくくってやる。
left joinで探すと修正すべきファイルが羅列される。

account_history.php
advanced_search_result.php
checkout_process.php
default.php
products_new.php
product_reviews_info.php
product_reviews.php
popup_image.php

includes/classes/order.php
includes/modules/featured.php
includes/functions/general.php
includes/boxes/manufacturer_info.php

admin/languages.php
admin/orders.php
admin/products_attributes.php
admin/orders_csv.php
admin/customers.php
admin/includes/functions/general.php
admin/geo_zones.php
admin/edit_orders.php
admin/popup_image.php
admin/tax_rates.php

あとはsmartyでアサインしている箇所も修正が必要
まあフォルダ検索で共通の文字_smarty_objでリストアップして
ファイル検索で 『$this->』を『$』で全て置き換え。

$this->h_smarty_obj  → $h_smarty_obj
$this->smarty_obj   → $smarty_obj
$this->box_smarty_obj → $box_smarty_obj
$this->np_smarty_obj  → $np_smarty_obj
$this->fe_smarty_obj  → $fe_smarty_obj
$this->f_smarty_obj  → $f_smarty_obj

PHP5.3.3で使ってみると
Function session_is_registered() is deprecated
というエラーが出る。
セッション関連の関数が変わっているようなのだが
これもそっとしておいて一つバージョンを下げる方が手間が省ける。
チェックもしないといけないし。

ということでPHP5.2.14に落ち着く。