0

情况:

我正在为客户的网站创建数据库用户界面。我知道我可以简单地使用 phpMyAdmin,但它对我的客户来说太复杂了。相反,我虽然可以尝试一些 PEAR 包。在做了一些研究并遵循教程后,我决定使用 Structures_DataGrid 包。我目前正在关注 sitepoint.com 的书《PHP 选集》。它包含一些很棒的教程。

错误:

首先,我在安装这些软件包时遇到了一些困难,所以我最终从 PEAR 网站下载它们并通过 FTP 将它们插入服务器。完成所有设置后,我按照书上的说明一直到最后一个分号。但我收到此错误:未知数据源驱动程序。请指定现有的驱动程序。我不知道这个错误来自哪里或为什么。

代码:

<?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 回答