LOGIN ID Password Auto Login Register Now! Lost Password?
Xoops Q&A

phpMyAdminのインポートでエラー

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2017/7/19 0:43
kamezou  1st Class 居住地: 2013~  投稿数: 51
サーバーの引っ越し作業中なのですが、データーベースのデータ移動でハマってしまいました。

プロテクターの PREFIXマネージャ から書き出してダウンロードした.sql.zipファイルを phpMyAdmin でインポートしたところ、_usersテーブルで、

#1367 - Illegal double '38e35472' value found during parsing

のエラーが発生し、インポートが中断されます。

エディタでこの行を見てみると、actkey の値 38e35472 がシングルクォーテーションで囲われていません。
PREFIXマネージャが書き出す時に、これを数値と判断したと思われます。

trust_path/modules/protecter/prifix_manager.php の120行 付近ではないかと思います。
対処していただけますでしょうか?

投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2017/10/6 17:39
nao-pon  Lieutenant   投稿数: 488
kamezou さん、こんにちは。

めっちゃ遅くなりましたが、対応してみました。

- https://github.com/xoopscube/protector/commit/8cecd90d3d8eeb918a64c446fd2d1e8...

そして、protector 3.52.2 としてリリースしました。X-update でアップデートできます。

お試しください。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2017/10/7 0:47
kamezou  1st Class 居住地: 2013~  投稿数: 51
nao-ponさん、お忙しい中、ありがとうございます。

早速、アップデートしました。

で、少し教えてください。
私は、この部分、&& ($fields_meta->type != 'string')を追加 と考えていたのですが、
is_numeric($row[$j]) を preg_match('/^[0-9.]+$/', $row[$j])に変更 となっているのは、なにか理由があるのでしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2017/10/7 20:49
nao-pon  Lieutenant   投稿数: 488
実は熟考していないのですが、数値でデータタイプが'timestamp'ではない場合といった趣旨でコーディングされていると思いましたので、例えば "is_numeric()" では ”38e35472” は指数表記と判定され数値と判断されるようなので、正規表現を用いた数値判定に切り替えました。

もし、問題があるようでしたらお知らせください。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2017/10/8 0:28
kamezou  1st Class 居住地: 2013~  投稿数: 51
現状で問題があるわけではありませんが、
書き出された.sqlファイルの actkey の値を見ていたところ、指数表記ではない 数値が、同様にシングルクォーテーションで囲われていないものがありました。

phpMyAdmin のインポートではエラーは出ないようですが、actkey の値は(データタイプ 'string'の値は)文字列として書き出した方がいいのではないかと思います。

.sqlファイルの actkey の部分しか見ていないので、他の部分でどうなっているかは分かりません。ごめんなさい。
投票数:0 平均点:0.00
  条件検索へ

Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities