初心者です。
今テストで下記構文を試しましたがエラーになります。
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で質問しましょう!
似たような質問が見つかりました
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP php エラー 2 2022/10/23 16:43
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
SQL文が実行できません
-
テキストボックスに入れた内容...
-
VBSの中で書くSQL文の記...
-
SQLiteでカラムを追加
-
codeigniter 複数モデルでトラ...
-
エラー3011
-
Accessのテーブルへ複数の主キ...
-
<VB.NET>INSERT文でDBにデータ...
-
MySQLでデータベースにデータin...
-
Pro*Cの構文エラー
-
PHPで[]の使い方について
-
while文の中にwhile文を書きた...
-
stringaddslashes 半角¥が消える
-
テーブルに入っているデータと...
-
phpでテーブルを作る際変数によ...
-
SELECT結果から動的にコンボボ...
-
phpのupdate,sql文にて連番カラ...
-
ヒアドキュメントでSQLを書く事...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
SQL文が実行できません
-
SQL文の実行に失敗しました???
-
in 'where clause'のエラーの理由
-
Accessのテーブルへ複数の主キ...
-
SELECT COUNTで取得した結果の表示
-
LocalのNotesメールDBをVBAで参...
-
SELECT文を発行して、ACCESSよ...
-
phpのPEARのMDB2を使って出たエ...
-
エラー3011
-
ASPでRecordCountが使用でき...
-
データフォームウィザードで追...
-
codeigniter 複数モデルでトラ...
-
Call to undefined method MDB2...
-
PHP(PDO)でDBの情報を完全一...
-
PEAR でprepareメソッドがエラーに
-
時刻型にNULLでセットしたい
-
ADOを使いDBへ読み書きしたい
おすすめ情報