2009-07-03 3 views
0

状況:PEARのデータソースドライバエラー

私は、クライアントのウェブサイトのデータベース・ユーザー・インターフェースを作成しています。私は単にphpMyAdminを使うことができますが、私のクライアントにとっては複雑すぎます。代わりに、私はPEAR Packagesのいくつかを試してみることができます。いくつかの研究を行い、チュートリアルに続いて、Structures_DataGridパッケージを使うことにしました。私は現在、sitepoint.comの本「The PHP Anthology」に従っています。それはいくつかの素晴らしいチュートリアルを含んでいます。

エラー:すべての

まず、私はので、私はPEARのウェブサイトからダウンロードし、それらを挿入することになったパッケージをインストールするいくつかの困難があったFTP経由で彼のサーバーをint型。結局セットアップが完了した後、私は最後のセミコロンまでの本の指示に従った。しかし、私はこのエラーが発生します:Unknown DataSource driver。既存のドライバを指定してください。私はこのエラーがどこから来ているのか、なぜそこから来たのか分かりません。

コード:

<?php 

    // Include PEAR::Structures_DataGrid 
    include('Structures/DataGrid.php'); 

    $datagrid = new Structures_DataGrid(2); 
    $options = array('dsn' => 'mysql://$user:[email protected]$db_host/$db_name'); 
    $sql = "SELECT * FROM Users"; 
    $bind = $datagrid->bind($sql, $options); 
    if (PEAR::isError($bind)) { 
     print('DataGrid Error: '. $bind->getMessage()); 
     $gridsource = ''; 
    } else { 

     // Define our Column labels, using a 'column' => 'Label' format 
     $columns = array(
      'id' => 'Id', 
      'status' => 'Status', 
      'last_login' => 'Last Login', 
      'startDate' => 'Start Date', 
      'fname' => 'First Name', 
      'lname' => 'Last Name', 
      'email' => 'Email', 
      'cName' => 'Company', 
      'cEmail' => 'Company Email', 
      'cCity' => 'City', 
      'cProvince' => 'Province', 
      'ctr' => 'Country', 
      'cSite' => 'Website'    
     ); 
     $datagrid->generateColumns($columns); 

     // Some more options, for our renderer 
     $renderer_options = array(
      'sortIconASC' => '&uArr;', 
      'sortIconDESC' => '&dArr;', 
      'headerAttributes' => array('bgcolor' => '#E3E3E3'), 
      'evenRowAttributes' => array('bgcolor' => '#A6A6A6'), 
     ); 
     $datagrid->setRendererOptions($renderer_options); 

     // Add some final attributes to our table 
     $renderer = $datagrid->getRenderer(); 
     $renderer->setTableAttribute('cellspacing', 0); 
     $renderer->setTableAttribute('cellpadding', 5); 
     $renderer->setTableAttribute('border', 1); 

     // Render the table, be sure to check for errors 
     $gridbody = $datagrid->getOutput(); 
     if (PEAR::isError($gridbody)) { 
      print('DataGrid render error: ' . $gridbody->getMessage()); 
      $gridbody = ''; 
     } 

     // Finally, render the pager, again checking for errors 
     $gridpager = $datagrid->getOutput(DATAGRID_RENDER_PAGER); 
     if (PEAR::isError($gridpager)) { 
      print('DataGrid render error: ' . $gridpager->getMessage()); 
      $gridpager = ''; 
     } 
     $gridsource = $gridbody . $gridpager; 
    } 

?> 

コメント:

私のデータベースの資格情報のすべてが正しいです。私はUnixサーバ上のMySQLデータベースに接続しようとしています。私はすべての必要なパッケージを持っていると確信しています。私はエラーがコード内にあるとは思わない。むしろ、ドライバが有効になっていないなどの問題です。

質問:

まあ、私は私の問題が何であるかわからないので、私の質問が何であるかわかりません。 「私はどのようにドライバを指定するのですか?」、「ドライバを有効にする/有効にする/含めるにはどうすればよいですか?または誰もが以前にこれらの問題に対処しなければならなかったのですか?あなたは何をしましたか?

ご協力いただきありがとうございます。

答えて

1

私は本当に答えはありません。ちょうどアップデートです。

私はすべてをアンインストールして、自分のサーバー上のPHPディレクトリを削除しました。私はgo-pear.phpスクリプトをダウンロードし、すべてを再インストールしました。

すべて正常に機能します。わーい!