Ryuta Fujishiro
fsb20****@yahoo*****
2010年 2月 17日 (水) 13:24:41 JST
皆様お世話になります、ふじしろと申します。 まずは環境から(レンタルサーバーです) mysql4.0.27max php4.3.9 phpmyadmin2.10.0.2 Mysql5に移行する為に、この環境からデータをdumpしたのですが 少々の書き換えでは実用レベルに至らぬ為保留。 気を取り直して元の環境に戻そうとすると顧客管理画面にエラーが出ており、顧客の情報が真っ白(フォームフィールドは表示され中が空欄)。データベースを確認するとレコードは存在しているが、エラーの内容は顧客のidを配列として受け取れていない様子。 ちなみにエラーメッセージは以下の通りです。 Warning: reset(): Passed variable is not an array or object in /home/xxx/xxxxxx.com/public_html/admin/includes/classes/object_info.php on line 17 Warning: Variable passed to each() is not an array or object in /home/xxx/xxxxxx.com/public_html/admin/includes/classes/object_info.php on line 18 本家?oscommerce.comとこちらのメーリングリストを探索したのですが 解決には至っておらず、まだまだトライ&エラー中です。 原因は突き止めたものの、はたしてコレが原因か?という状態です。 自分の疑っている所はcustomersのテーブルのcustomer_idの箇所。 デフォルトの状態の構造をチェックすると、auto_increment値が設定されているのでOptimal_fieldtypeはENUM('1','2'.....) NOT NULLとなっているのですが、ここに800件程のデータをsqlでインポートするとOptimal_fieldtypeがSMALLINT(3) UNSGNED NOT NULLとなってしまいます。 レコード自体は目視して無事インポートされている様子ですが、おそらくMysqlの互換性が合わずauto_incrementを含むテーブル構造に変化をもたらしている模様。(Mysql4系のマニュアルより推測) 試した事では ●古いバージョンのphpmyadmin(2.6.0-pl3)でエクスポート=>インポート(エクスポートのオプションmysql40互換) ●customersのテーブルを空にしてレコードの入れ直し(oscommerce.comではコレで治るという人が何人か居ました) ●customersのテーブルを空にしてレコードの入れ直し(数人ずつ入れると正常に入ってゆくが、61人目からOptimal_fieldtypeがSMALLINT(3) UNSGNED NOT NULLとなってしまいます。試しに61人目を挟んで60人分のレコードを入れても正常。) ●無駄とは思いながら/admin/customers.phpの $customer_info = tep_array_merge($country, $info, $reviews); $cInfo_array = tep_array_merge($customers, $customer_info); を $customer_info = tep_array_merge((array)$country, (array)$info, (array)$reviews); $cInfo_array = tep_array_merge((array)$customers, (array)$customer_info); に書き換えてみた。 どれも効果無かったです。 長くなって申し訳ありませんが、 同じような症状に関してご存知の方 アドバイスおねがいします。 -------------- next part -------------- HTMLの添付ファイルを保管しました... Descargar