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 を受け取ります
助けていただけますか?私は何を間違っていますか?私はこれに固執しました。