
初心者です。
今テストで下記構文を試しましたがエラーになります。
prepareがインストールされていないのでしょうか?
どなたかご教授お願いします。
エラー内容↓
Fatal error: Call to undefined method DB_Error::prepare()
テスト構文↓
<?php
require_once("DB.php");
$db=DB::connect("sqlite://localhost/samples.db");
$stt=$db->prepare("CREATE TABLE article (url,title,published)");
$stt=$db->execute();
$db->disconnect($stt);
?>

No.1ベストアンサー
- 回答日時:
connectで、ちゃんとデータベース接続はできていますか? $dbはどういう状態になっているでしょうか? まずはこの点を確認されてはどうでしょう。
見たところSQLiteと思うのですが、SQLite自体は利用できる状態になっているでしょうか。PHP5.1.4とかだと、初期状態ではphp_sqlite.dllはコメントアウトされていた気がするんですが、php.iniの設定などはきちんとできているでしょうか?
以上の2点が気になりました。
この回答への補足
ご回答有難うございます。
2点調べてみました。
まず、データーベースへの接続は出来ていました。
$db=DB::connect("sqlite://localhost/samples.db");
の直後に
if($db){echo "get db!!!";}else{echo "nothing db";}
を
挿入しましたら"get db!!!"と出力されました。
次に、php.iniのphp_sqlite.dll設定は確かにコメントアウトされていました。
;を外して保存し、Apacheを再起動させて再度表示させてみたのですがやはり、同じく
Fatal error: Call to undefined method DB_Error::prepare()
のエラー表示なのです。
また、他にも気になる点がありましたら
宜しくお願いします。
No.2
- 回答日時:
Fatal error: Call to undefined method DB_Error::prepare()
「定義されていないメソッド DB_Error::prepare() を呼び出した」
と怒っています。
$db=DB::connect()でエラーになってDBエラーオブジェクトが返って
きたわけです。
>if($db){echo "get db!!!";}else{echo "nothing db";}
>を
>挿入しましたら"get db!!!"と出力されました。
これは当たり前ですね。エラーのときはエラーオブジェクトを返すのですから。。。
正しくは、
$db = DB::connect($dsn);
if (DB::isError($db)) {
print DB::errorMessage($db) . "<BR>";
print $db->getUserInfo() . "<BR>";
.......
}
これで、接続できなかった原因がわかるはずです。
>$stt=$db->execute();
execute()には、パラメータが必要なはずですが。。。
>"CREATE TABLE article (url,title,published)"
このSQLあっているのでしょうか?
SQLiteでは、
CREATE TABLE article (url text,title text,published text)
とかのデータタイプは必要ないのですか?
PEARのマニュアルはご覧になりましたでしょうか?
マニュアルを読むことをお勧めします。
参考URL:http://phpspot.net/php/man/pear/package.database …
この回答への補足
ご指摘有難うございます。
エラーオブジェクトの内容は
not found
Unable to include the DB/.php file for ''
でした。確かに接続できてませんでした。
実はPEARは勉強始めたところで何も分かっていないのです。
マニュアル見て勉強してみます。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
SplFileObject を利用したとき...
-
PHP8を使うと、大量のWarningが...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
php 完了画面の送信メールのコ...
-
csvファイルについて教えて下さ...
-
PHPの変わった閉じタグの必要性...
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
SQL文が実行できません
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
エラー3011
-
Accessのテーブルへ複数の主キ...
-
SQL文の実行に失敗しました???
-
LocalのNotesメールDBをVBAで参...
-
時刻型にNULLでセットしたい
-
codeigniter 複数モデルでトラ...
-
VBSの中で書くSQL文の記...
-
例外処理
-
SELECT文を発行して、ACCESSよ...
-
array_mapを使ったエスケープ処理
-
ExcelVBAでAccessのデータを検...
-
Call to undefined method MDB2...
-
MySQLでデータベースにデータin...
-
Pro*Cの構文エラー
-
JAVA SQLServerException 列名 ...
-
<VB.NET>INSERT文でDBにデータ...
おすすめ情報