![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
xamppにpearをインストールし、テキストを見ながらプログラムを作成し、実行しましたが、とエラーになります。
エラーの画面は以下のとおりです。
接続に成功しました
Fatal error: Call to a member function getOne() on a non-object in C:\Program Files\xampp\htdocs\pje_bulletin\bbs.php on line 15
これに対するプログラムは以下のようなものです。
【bbs.php】
<?php
require_once("Init_class.php");
$init_obj = new Init_class();
$in_disp_from = $_GET["in_disp_from"];
if(!$in_disp_from = intval($in_disp_from)){
$in_disp_from = 0;
}
$in_disp_to = $in_disp_from + 10;
$sql = "SELECT (*) FROM bbs_table";
$count_result = $init_obj->db_object->getOne($sql); ←ここがline 15
$sql="SELECT message_sequence,contributor,mai_address,home_page_uri,subject,message,pass,_word,write_date FROM bbs_table ORDER BY message_sequence DESC LIMIT ".$in_disp_from.", "."10";
$db_result = $init_obj->db_object->query($sql);
disp_html_header($init_obj->bbs_name);
?>
以下続く
【Init_class.php】
<?php
/* PEAR::DBを読み込む */
require_once("../../php/PEAR/DB.php");
require_once("html_disp.php");
/* メンバ変数 */
class Init_class{
var $db_object;
var $decode_key = "abcdefg";
var $db_user = "root";
var $db_pass = "";
var $db_host ="localhost";
var $db_name ="keroro";
var $bbs_name = "まっちゃんの掲示板";
}
/* コンストラクタ → DBへの接続 */
function Init_class(){
$db_string = "mysql://".$this->db_user.":".$this->db_pass."@".$this->db_host."/".$this->db_name;
$this->db_object = DB::connect($db_string);
}
print("接続に成功しました");
以下続く
●pearを使わないで、PHPから直接MySQLにつながります。
●SQLも簡単なヤツですし、コマンドラインからも問題ありませんでした。
●一旦は接続できているようなのですが、次のrowをカウントに行くところでつまづいています。
PEARがちゃんとインストールされていないのかと思いましたが、
コマンドで「pear list」とやると、
DB 1.7.13 stable
なっており、このほかに70個ぐらいのモジュールというかパッケージがセットされているようです。
それと、php.iniのinclude pathもちゃんと設定されています。
どなたかご指導下さい。
よろしくお願いします。
![「pearがエラーになる」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/3/1680364_5497c30aa3a09/M.jpg)
No.1ベストアンサー
- 回答日時:
おそらくDBのオープンに失敗しているんじゃないでしょうか。
$this->db_object = DB::connect($db_string);
の結果がエラーになってないかどうか、その後に
---
if( DB::isError( $this->db_object ) ) {
print "接続に失敗しました";
}
---
といったチェックを行ってみてください。
(それ以外の、db_object->getOne や、 db_object->query しているところも、結果のエラーチェックはしておいた方が良いでしょう)
あと、PEAR::DB は古いライブラリです。今から新規にプログラムを作るのなら、PEAR::MDB2を使うことをオススメします。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070 …
http://project-p.jp/halt/anubis/blog_show/524
mtaka2さん、回答ありがとうございました。
週明けからいきなり出張になってしまい、返信が送れてしまいました。
ゴメンナサイ。
結果からいいますと、やはりご指摘のように、ちゃんとDBがつながっていませんでした。
メンドクサイですけど、ひとつずつチェックをしなければいけないことがわかりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
例外処理
-
Function内でのMySQLデータベー...
-
VBAをつかってクエリの情報を抽...
-
Microsoft Access DBへの接続
-
Ruby構文で三つのテーブルを作...
-
PHPの記述で値が取れません。
-
DBから抜き出した値を表示する方法
-
SQL Serverからのvarchar型のデ...
-
php テーブルを作れない
-
phpのエラーについてです
-
Resource id #3 をフィールドの...
-
連想二次元配列のUNIXTIMEでの...
-
DBに入力されている値のセレ...
-
PHP 勤務時間の合計を出したい
-
sprintf関数での%Sが分かりませ...
-
XAMMPが起動しません。
-
PHP+MySQLで、日時を比較して抽...
-
出勤表の作り方
-
mysql_fetch_objectのエラー
-
excelvbaのリセットの仕方。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
エラー3011
-
SQL文が実行できません
-
SELECT文を発行して、ACCESSよ...
-
in 'where clause'のエラーの理由
-
phpのPEARのMDB2を使って出たエ...
-
Call to undefined method MDB2...
-
LocalのNotesメールDBをVBAで参...
-
PHP内でUPDATE構文を使用してい...
-
単純ですが、意外と穴?なデー...
-
DAOでデータベースを二つ開くに...
-
pearがエラーになる
-
見られたくないファイル
-
PEAR でprepareメソッドがエラーに
-
SQL文の実行に失敗しました???
-
年月の情報だけを基に階層構造...
-
例外処理
-
データ入力条件
おすすめ情報