0

を実行するSELECT * FROM tableと、返された行セットにテーブル内のすべての列が含まれていません。最近追加された列は含まれていません。structureただし、 phpMyAdminのタブには新しい列が表示されます。のように直接クエリを実行するとSELECT new_column_name FROM table、列の値も表示されます。

この問題は、PHP または phpMyAdmin を介してテーブルをクエリする場合の両方に存在します。

興味深いことに、 を実行するSELECT *, new_column_name FROM tableと、new_column_name値が重複します。

このような奇妙な動作の理由と、を使用してすべての列を表示するデフォルトの動作を復元するにはどうすればよい*ですか?

更新: テーブル キャッシュをフラッシュし、mysql サーバーを再起動しましたが、何も変わりません。

更新: ストレージ エンジンは InnoDB です

更新: 新しい列を追加する前に、列ヘッダーを別の場所にドラッグ アンド ドロップして、列の場所を切り替えました。しかし、列を追加した後に をクリックrestore column orderしたので、影響はなかったはずです...

更新: コマンドライン経由でクエリを実行した場合に何が返されるかを確認したところ、問題は実際には phpMyAdmin のみにあることがわかりました (コマンドラインは特に新しい列を返します)。PHP で行っていたことを再確認すると、特定の列を明示的に選択していたことがわかりました。そのため、問題は phpMyAdmin でのみ持続します。何が問題なのですか?

4

1 に答える 1

-1

ちょうど今この問題がありました。

ストレージ エンジンを InnoDB から MyISAM に変更し、InnoDB に戻すことで修正しました。

于 2018-07-31T06:27:39.077 に答える