0

mysql データベースとのローカル接続とリモート接続があります。ローカル接続は問題なく機能します。しかし、リモート接続は、接続を確立している間は何も返しません。私は通常、次のようになります。

致命的なエラー: 非オブジェクトでのメンバー関数 result() の呼び出し

リモート接続には次の構成を使用します。



    $db['mydb']['hostname'] = "ip_address_of_database";
    $db['mydb']['username'] = "username";
    $db['mydb']['password'] = "password";
    $db['mydb']['database'] = "database";
    $db['mydb']['dbdriver'] = "mysql";
    $db['mydb']['dbprefix'] = "";
    $db['mydb']['pconnect'] = FALSE;
    $db['mydb']['db_debug'] = FALSE;
    $db['mydb']['cache_on'] = FALSE;
    $db['mydb']['cachedir'] = "";
    $db['mydb']['char_set'] = "utf8";
    $db['mydb']['dbcollat'] = "utf8_general_ci";

データベースにアクセスする関数では、リモート サーバーとの接続があるかどうかを確認してから、データを取得しようとします。



    $mydb = $this->load->database('mydb', TRUE);
    if (!isset($mydb->conn_id) && !is_resource($mydb->conn_id)) {
        $error = 'database is not connected';
        return $error;
    }else{
        $query = $mydb->query("SELECT * FROM database LIMIT 1;"); 
        return $query->result();            
         }

これは localhost データベースでは正常に機能しますが、リモート データベースでは機能しません。私は常にエラー Fatal error: Call to a member function result() on a non-object を受け取ります

助けていただけますか?私は何を間違っていますか?私はこれに固執しました。

4

1 に答える 1

0

最後に、Web ホスティング プロバイダーに連絡したところ、解決策が見つかりました。この問題は、リモート データベース アクセスとそのサーバーに関係していました。追加した IP アドレスの例外とドメイン名は機能しませんでした。リモート データベース アクセスを許可するために、ホストが使用していた内部ドメイン名を追加する必要がありました。解決策を見つけるために、私は彼らと 2 ~ 3 時間チャットしました。とにかく今は解決しました。そのFYIを投稿しています。

于 2012-09-03T08:51:58.377 に答える