ローカル環境でテストしOKだったのでさくらにアップしたところMDB2を使用したデータベース接続がエラーになってしまいます。

DSN設定は下記のようにしており確認もしましたが間違いありませんでした。
$dsn = 'mysqli://ユーザー名:パスワード@*****.db.sakura.ne.jp/データベース名?charset=utf8';

何度試してもMDB2 Error: not foundとエラーが表示され全く原因がわからないのですがどうすればいいでしょうか?

mysql,phpは5でPEARのパッケージもサーバーにアップしております。宜しくお願い致します!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>mysql,mysqli


そういえばmysqlでやってますね>私
mysql->Mysql4.0以前
mysqli->Mysql4.1以降
だそうです。

msqlで検索取得出来るか簡単なサンプルで試すとか...
    • good
    • 0
この回答へのお礼

MySQL 5.1なのでバージョンについては問題ないと思うのですが・・・
いろいろ試してみようと思いますが引き続きご解答をお待ちしております!

お礼日時:2009/05/18 18:23

$dsn を連想配列で私はさくらで出来てますよ。



$dsn = array('phptype'=> 'mysql',
'username'=> 'xxx',
'password'=> 'yyy',
'hostspec'=> 'mysql101a.db.sakura.ne.jp', //自分で選択したサーバです
'database'=> 'xxx',);
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。配列でも試しましたが残念ながら結果は変わらずです。。。

気づいた事があり配列にした場合もそうでない場合もなのですがmysqliをmysqlに変えると
この情報でひとまずエラーは出なくなりますがなにかおわかりになりますでしょうか?

調べたところドライバをインストールしてない場合に起こるエラーとの説明もあったのですが
http://pear.php.net/package/MDB2_Driver_mysqli/d …よりドライバはダウンロードし
解凍したDriverフォルダごとをMDB2/Driverへインストールしております。(手動)

ローカルでは問題なく動作するので謎です^^;

お礼日時:2009/05/18 17:19

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q中古PCでドライバが無い場合 IObit Driver Boosterでドライバーを入れられるか

中古のPCを買った場合 大体ドライバーCDは付いてきません
リカバリー領域からではなく
クリーンインストールを行った場合
そこにIObit Driver Boosterを入れて全てのドライバを取得することは出来ますでしょうか

よろしくお願いします

Aベストアンサー

普通に作動しているならば
「IObit Driver Booster」は使った事がないので判りませんが「Double Driver」は使えました。以下からダウンロード出来ます。
http://forest.watch.impress.co.jp/library/software/doubledriver/

QMACのターミナルで「C:¥> c:¥xampp¥php¥pear install MDB2」というコマンドを実行できません。

ターミナルも始めて使うので、やりかたが違うのかもしれませんが。
上記のコマンドをテキストエディットで入力して(「¥」が「\」になってしまって入力できなかったので)ターミナルにコピー・ペーストして、enterを押したら、「¥」が「\302\245」に変わったし、「-bash: C:¥: command not found」と表示されました。
どのように実行させるのでしょうか?
よろしくお願いします。

Aベストアンサー

> MACのターミナルで、・・・

 ご質問に書かれている "MAC" とは、Mac OSのことでしょうか?
 もし、そうでしたら、Mac OS には、「C:¥> c:¥xampp¥php¥pear install MDB2」というコマンドはないので、実行できません。

 ※「C:¥> c:¥xampp¥php¥pear install MDB2」は、DOS系のコマンドです。

QDriver Booster 3 PRO 【3ライセンス】 [ダウンロード]について

下記質問へのご回答お願します。
①自動でDriverが最新に更新できる超便利なアプリだと思いますが、何か注意点はありますか。
②3ライセンスはpc3台以内に適用だと思いますが、win7からwin10にアップグレード後、同一pcで使用できますか。
➂Driver Booster 3 PROをインストールしたpcが壊れたとします。新品又は中古のpc(既存使用中を含め合計3台)でDriver Booster 3 PROを使用できますか?
よろしくお願いします。

Aベストアンサー

それよりも、「Glary Utilities」のフリーソフトで十分だと思うけどねー勿論、あなたの望む「Driverのアップデート機能」も備えていますよ・・・一度ダウンロードされて試用してみては??「無料でここまで使える~」となるでしょう!!もちろんPC何台でもOKですよ。

QPEAR::MDB2で、データベースの各カラムの型や長さの情報を取得したい

PEAR::MDB2でデータベース(PostgreSQL)を操作させているのですが、MDB2でデータベースの各カラムの型や長さの情報を取得することって出来ますでしょうか?

フォームからデータを入力する時、フォームに入力された値の長さをチェックするのに使ったりするのに便利かとも思ったのですが、探してもそういったMDB2関数が見つかりません。

もし、各カラムの型や長さの情報を取得する方法がありましたら、教えていただければと思います。

Aベストアンサー

詳しくは知らないのですが、pg_num_fields, pg_field_prtlen,
pg_field_type を使ったら取得できそうです。

http://jp2.php.net/manual/ja/function.pg-field-prtlen.php

Qwindow 10を使用しています。PC起動するたびに[Driver Booster]と言うアプリ

window 10を使用しています。PC起動するたびに[Driver Booster]と言うアプリをインストールするかどうかなる画面が出ます。その都度削除していますがでなくする方法を教えて下さい。

Aベストアンサー

IObit社の他製品をインストールすると、「Driver Booster」の広告が出るようになるそうです。
下記が参考になれば。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12122327642

Qcharset=UTF-8なのにShift-JISになっちゃいます!

<META http-equiv=content-type content="text/html; charset=UTF-8">
と記述して、ブラウザ(IE6)で確認したのですが真っ白な画面になり、ブラウザのエンコードを確認した
ところShift-JISになっていました。自動選択にしてもShift-JISになってしまいます。
UTF-8でどうしてもウェブを作りたいのですがエンコードがShift-JISにならない方法を教えていただけないでしょうか?

使っているエディタは秀丸です。

Aベストアンサー

PHPの質問ですよね。

<?php
header("Content-type: text/html;charset=utf-8");

なんて書いてあげるといいんじゃないでしょうか。

QDriver Booster2

 
 PCを開いたら突然Driver Booster2の更新指示がでました。タスクバーにも印がでましたが
 削除した方がいいのでしょうか。なんでもgooにお聞きして済みませんが教えてください。

Aベストアンサー

それ、このサイトのsata***とかいう迷惑ユーザーの怪答を参考に導入したソフトでは?

http://www.jpita.or.jp/pc/index.php?20141031
で解説されているようなことを行うツールですが、
>ドライバーが古いと、脆弱性が狙われ、ウイルスに感染する可能性が高まります。
なんてことはほとんどないばかりか、環境によっては最新のドライバが必ずしも最良のドライバではないことを無視することにもなりかねません。ただ、2になって復元機能がついているのは救いです。
しかし、放っておくと常駐してリソースを占有するので、迷惑だと感じるなら削除してください。

QPEAR AUTH 認証エラーClass 'PEAR_Error' not found

Fatal error: Class 'PEAR_Error' not found in E:\Program Files\xampp\php\PEAR\DB.php on line 946
アクセスすると上記のエラーが出ます。

以前まで認証できていたのですが何をいじったのか
ログインフォームがでなくなりました。

環境は以下の通りです。
ApacheFriends XAMPP (Basispaket) version 1.6.8
Apache 2.2.9
MySQL 5.0.67 (Community Server)
PHP 5.2.6 + PHP 4.4.9 + PEAR

あまり理解していないので質問を質問で返す可能性がありますが
よろしくお願いします。
***********************************************
<?php
require_once("../../php/PEAR/Auth/Auth.php");
require_once("loginform.php");

$params = array(
"dsn" => "mysqli://hoge:hoge@localhost/hoge",
"table" => "test",
"usernamecol" => "user",
"passwordcol" => "pass",
"cryptType"=>"md5",
'db_fields'=>"*"
);
$authobj = new Auth("DB", $params, "loginFunction");

$authobj->start();
?>
***************************************************

Fatal error: Class 'PEAR_Error' not found in E:\Program Files\xampp\php\PEAR\DB.php on line 946
アクセスすると上記のエラーが出ます。

以前まで認証できていたのですが何をいじったのか
ログインフォームがでなくなりました。

環境は以下の通りです。
ApacheFriends XAMPP (Basispaket) version 1.6.8
Apache 2.2.9
MySQL 5.0.67 (Community Server)
PHP 5.2.6 + PHP 4.4.9 + PEAR

あまり理解していないので質問を質問で返す可能性がありますが
よろしくお願いします。
****************...続きを読む

Aベストアンサー

PEAR_Error は PEAR.php の中に定義されているので
PEAR.php が読み込めないといったエラーです。

PEARのライブラリはその中で、相対パスを使って include しているものが多いので
PEAR.php があるディレクトリに inlclude_path を通しておいた方いいです。

<?php
# /usr/local/lib/php/PEAR なんかを追加
ini_set('include_path', /* 省略(調べてください) */);
require_once("Auth/Auth.php");

実際のエラーはDB周りかもしれませんがが、それはまた。

QWDDM(Windows Display Driver Model)ドライバーについて

Windows Vista(x64)をインストールした際に、入っているディスプレイドライバー(WDDM(Windows Display Driver Model))を入手したのですがどこから、どのように入手できるでしょうか?現在はメーカーのサイトからダウンロードしたドライバーを適用していますが、具合が悪いので初期状態に戻したいのですが、入手方法がわかりません。よろしくお願いします。

Aベストアンサー

こんにちは。

 vista標準のドライバーなら入れたOSのDVDorCDに入っています。
XP64bitご使用でvistaが欲しいのならOSを購入してください。

おおざっぱに、ドライバーの更新で特定の場所からインストールを選択し
検索しないでインストールするドライバーを選択すると一覧が出てきます。
なので通常なら入手する必要なないはずです。

QPEAR・MDB2のモジュールロードについて

使用環境ですが、php5.3.1
MDB2において、「createTable」や「executeMultiple」などは、モジュールのロードをしなくてはいけません。
そのロード方法をサイトで見たのですが上手く行かなかったので、質問させていただきました。
まず、ロード方法の3つのパターンなのですが

サイトURL
ttp://pear.plus-server.net/package.database.mdb2.intro-module.html
ttp://pear.plus-server.net/package.database.mdb2.intro-manager-module.html

・1つめのパターン
PHP4と5ともに使える
ーーー
// Manager モジュールを読み込みます
$mdb2->loadModule('Manager');
// PHP4 および PHP5
$mdb2->manager->createTable( 'test', $definition, $table_options );
ーーー

・2つめのパターン
'modules' オプションで PHP5 のオーバーロードを利用する
ーーー
// モジュール名の短縮形を、メソッド名の先頭に付加します。
// そして元のメソッド名の最初の文字を大文字にします。
$tables = $mdb2->mgCreateTable( 'test', $definition, $table_options );
ーーー

・3つ目のパターン
PHP5 のオーバーロードを使用して、読み込んだモジュールのメソッドをコールする
ーーー
$mdb2->loadModule('Manager');
// 注意: PHP5 では __autoload() が使用できるので、
// 上の行は次のように書くこともできます。
$tables = $mdb2->createTable( 'test', $definition, $table_options );
ーーー

パターン2の方法で、テーブルを作成し、データを挿入するプログラムを書いたのですがエラーが出ます。以下ソース
ーーー
<?php
require_once("./test/root_config.php");
require_once("MDB2.php");

$mdb2 =& MDB2::factory( $DSN );
if( MDB2::isError( $mdb2 ) ){
die( $mdb2->getMessage() );
}

$definition = array(
'name' => array(
'type' => 'text',
'length' => 10
),
'tosi' => array(
'type' => 'integer'
)
);

$mdb2->mgCreateTable( 'test', $definition );

$alldata = array(array('one',1),
array('two', 2),
array('three', 3),
array('four', 4));
$sth = $mdb2->prepare('INSERT INTO test VALUES (?, ? )');
$mdb2->mgExecuteMultiple($sth, $alldata);
?>
ーーー
実行すると
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'MDB2_Driver_Manager_mysql' does not have a method 'executeMultiple' in C:\xampplite\php\PEAR\MDB2.php on line 1934
と出ます。

ちなみに、この時点ではテーブルは正常に作成できていてデータの挿入が上手く行きませんでした。
また、パターン1の方法で「createTable」や「executeMultiple」を記述すると上手く行きました。

質問1
上記ソースを、パターン2の方法で記述するにはどのように直せばいいでしょうか?

質問2
php4を使う予定はないのですが、モジュールの呼び出し方として、プログラム的に綺麗な書き方はパターン1なのでしょうか?
上記以外に、ソース的に綺麗な呼び出し方があれば教えてください。

長くなりましたが、よろしくお願いします。

使用環境ですが、php5.3.1
MDB2において、「createTable」や「executeMultiple」などは、モジュールのロードをしなくてはいけません。
そのロード方法をサイトで見たのですが上手く行かなかったので、質問させていただきました。
まず、ロード方法の3つのパターンなのですが

サイトURL
ttp://pear.plus-server.net/package.database.mdb2.intro-module.html
ttp://pear.plus-server.net/package.database.mdb2.intro-manager-module.html

・1つめのパターン
PHP4と5ともに使える
ーーー
// Manager モジュール...続きを読む

Aベストアンサー

少し調べてみたのですが、executeMultipleメソッドを持つのは、Extendedモジュールのようです。
http://pear.plus-server.net/package.database.mdb2.intro-execute.html

exExecuteMultipleとして呼ぶか
$mdb2->extended->executeMultiple(); //$mdb2->loadModule('Extended')を叩いた後で。
として呼べばいけるんじゃないでしょうか。


人気Q&Aランキング