1

最近、自分のサイトをホスティング プロバイダーにアップロードしましたが、非常に奇妙なエラーが発生します。

ローカルマシンで使用していたのとまったく同じデータベースをWebホストにインポートしましたが、次のように表示されます:

警告: PDOStatement::execute(): SQLSTATE[42S22]: 列が見つかりません: 1054 /home/users/xxxxx/html/caketopper.co.uk/public_html/models の「フィールド リスト」にある不明な列「toppers_types.urlPath」 /GalleryModel.php 32 行目

奇妙なことは、列が存在し、100% 正しいデータベースに接続していることです。

関連するSQLは次のとおりです。

SELECT toppers.name, toppers.urlName, md.description, toppers_images.thumbSrc,
toppers_types.urlPath
FROM toppers_images, toppers_types, toppers
LEFT JOIN meta_descriptions AS md ON md.topperId = toppers.id
WHERE toppers_images.topperId = toppers.id
AND toppers_types.id = toppers.typeId
AND isPrimary = 1

その SQL を Web ホストの phpmyadmin に入れると、クエリは期待どおりに実行され、結果が得られます。

PDO を使用してクエリを実行しています。

$r = $this->db->prepare($SQL) ;
$r->execute($PDOParams) ;
return $r->fetchAll(PDO::FETCH_OBJ) ;

誰もこのような異常に遭遇したことがありますか? もしそうなら、どうすれば修正できますか?

4

1 に答える 1

1

Stackoverflow にはこの種の質問がたくさんありますが、ほとんどすべてが同じように終わってい
ます。

大文字と小文字の問題も考えられます (Unix バージョンでは大文字と小文字が区別されますが、Windows では区別されません)。
とにかく - すべてをテストしてください。

PDO を使用してこのクエリを実行し、結果を確認します。

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'toppers_types'

フィールドが存在しない場合 - サーバーの資格情報などを確認します 存在する
場合 - その名前をコピーしてクエリに貼り付けます

于 2013-01-13T21:07:13.557 に答える