2

私たちのサイトは古いサーバーでは正常に動作していましたが、最近新しいサーバーに移動したところ、すぐにサイトのすべてがめちゃくちゃに見えました (つまり、ビューで探しているデータが見つかりません)。

さらに調査すると、以前は次のように返されていました。

$articles[0]['Article']['title']

現在戻っています:

$articles[0][0]['title']

最初は、PDO がインストールされていない (または破損しているなど) と言われましたが、Apache を PDO で何度も再構築したところ、PHP と MySQL の両方で PDO がオンになっています。

検索してみましたが、検索内容が間違っているか、良い情報がありません。これを引き起こしている可能性のあるアイデア、および/またはそれを修正する方法はありますか?


編集:

また、更新前にこのサーバーで動作し、5.3 に更新されました (以前のバージョンが何であったかはわかりません)。

編集 2

提案に従って、データソースをHpMysqlに変更しました 。これで機能します。ただし、一時的な修正と見なされるため、私の質問には答えません。問題の内容と、この回避策を使用せずに修正する方法を知りたいです。

4

1 に答える 1

1

元の投稿者 (私) による回答:

私たちのサーバー担当者によると、「PDO をロードするには 2 つの方法があります。1 つ目は、easyapache を使用して PDO php 拡張機能をインストールする方法です。2 つ目は、PECL を介して PDO をインストールする方法です。問題のモジュールが異なるようです。」

どうやら、このサーバーには通常の easyapache PDO の代わりに PECL が搭載されていたようです。彼がそれを削除し、easyapache PDO で再起動/リセットすると、すべてがうまく機能しました。

つまり、CakePHP には「通常の」PDO が必要なようです。

謎が解けました。

代わりに PECL を使用している場合は、次の回避策を使用できます。

Datasource フォルダーにファイル "HpMysql.php" を作成し、次のコード/クラスを追加します: https://github.com/lorenzo/HipHop/blob/master/Model/Datasource/Database/HpMysql.php

database.php の「データソース」を「HpMysql」に変更します


別の問題:(同じ答えであることが判明しました):

$this->Auth->login() は 1 行を返す正しいクエリを作成しますが、IF チェックに失敗します (サーバー固有の問題)

于 2012-07-17T15:11:56.597 に答える