0

状況:

クライアントの Web サイト用のデータベース ユーザー インターフェイスを作成しています。単純に phpMyAdmin を使用できることはわかっていますが、クライアントにとっては複雑すぎます。代わりに、PEAR パッケージのいくつかを試してみることができると思いました。いくつかの調査を行い、次のチュートリアルを行った後、Structures_DataGrid パッケージを使用することにしました。私は現在、sitepoint.com の本「The PHP Anthology」をフォローしています。いくつかの優れたチュートリアルが含まれています。

エラー:

まず、パッケージのインストールに苦労したので、最終的に PEAR の Web サイトからパッケージをダウンロードし、FTP 経由でサーバーに挿入しました。すべてのセットアップが完了した後、本の指示に従って最後のセミコロンまで進みました。しかし、次のエラーが表示されます: 不明な DataSource ドライバー。既存のドライバーを指定してください。このエラーがどこから来ているのか、その理由はわかりません。

コード:

<?php

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

    $datagrid = new Structures_DataGrid(2);
    $options = array('dsn' => 'mysql://$user:$passwords@$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 データベースに接続しようとしています。必要なパッケージがすべて揃っていると確信しています。エラーがコードにあるとは思いません。むしろ、ドライバーが有効になっていないなどの問題です。

質問:

さて、私の問題が何であるかがわからないので、私の質問が何であるかわかりません。「ドライバーを指定するにはどうすればよいですか?」、「ドライバーを有効化/アクティブ化/含めるにはどうすればよいですか?」などの質問をすることができます。または「以前にこれらの問題に対処しなければならなかった人はいますか?あなたは何をしましたか?」

事前に感謝します。

4

1 に答える 1

1

私は本当に答えがありません。ただの更新です。

すべてをアンインストールし、サーバーの PHP ディレクトリを一掃しました。次に、go-pear.php スクリプトをダウンロードし、すべてを再インストールしました。

今、すべてが正常に動作します! わーい!

于 2009-07-03T16:26:54.813 に答える