1

我正在使用 WAMP-MYSQL 数据库在 Yii 中工作。我已经创建了表格——

CREATE  TABLE IF NOT EXISTS `balaee_dev`.`country` (
  `countryId` INT(11) NOT NULL AUTO_INCREMENT ,
  `country` VARCHAR(45) NULL DEFAULT NULL ,
  PRIMARY KEY (`countryId`) ,
  UNIQUE INDEX `country_UNIQUE` (`country` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

当我在这里测试项目时- 它给了我这个错误:

“在数据库中找不到活动记录类“国家”的“国家”表”,尽管该表存在于数据库中。我为每个控制器都收到此错误。这是我的配置文件:

<?php

// This is the configuration for yiic console application.
// Any writable CConsoleApplication properties can be configured here.
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'My Console Application',
    // application components
    'components'=>array(
        'db'=>array(
            'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
        ),
        // uncomment the following to use a MySQL database

        'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=balaee_dev',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ),

    ),
);

我有 main.php 作为-

<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'My Balaee Application',
    // preloading 'log' component
    'preload'=>array('log'),
    // autoloading model and component classes
    'import'=>array(
        'application.models.*',
        'application.components.*',
        'application.modules.KnowledgePortal.*',
        'application.modules.QuestionBank.*',
        //'application.modules.UserAuthentication.*',
        'application.plugins.*',
            'application.extensions.noaaWeather.*',

    ),
    'modules'=>array(
        //Question Bank Module
        'QuestionBank'=>array(),
        //Social Networking Module
        'SocialNetworking'=>array(),
        //Knowledge Portal Module
        'KnowledgePortal'=>array(),
        // uncomment the following to enable the Gii tool
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'root',
            // If removed, Gii defaults to localhost only. Edit carefully to taste.
            'ipFilters'=>array('127.0.0.1','::1'),
            //'ipFilters'=>array('204.93.172.30'),
        ),
    ),
    // application components
    'components'=>array(
        'user'=>array(
            // enable cookie-based authentication
            'allowAutoLogin'=>true,
        ),

        'mailer' => array(
                'class' => 'application.extensions.mailer.EMailer',
                'pathViews' => 'application.views.email',
                'pathLayouts' => 'application.views.email.layouts'
        ),
        'curl'=>array(
        'class' => 'application.extensions.curl.Curl',
        ),
        'params'=>array(
        'noaaWeather.cachePath' => 'protected/extensions/noaaWeather/cache'
        ),

        // uncomment the following to enable URLs in path-format
        'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
/*
        'db'=>array(
            'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
        ),
*/

    'db'=>array(
            //'connectionString' => 'mysql:host=localhost;dbname=balaee_dev',
            'connectionString' => 'mysql:host=204.93.172.30;dbname:shailani_balaee_dev',
            //'emulatePrepare' => true,
            'username' => 'shailani_bdev',
            'password' => 'nTRXpfuH8wmjx5hV',
            'charset' => 'utf8',
        ),      
        // uncomment the following to use a MySQL database

        'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=balaee_dev',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ),

        'errorHandler'=>array(
            // use 'site/error' action to display errors
            'errorAction'=>'site/error',
        ),
        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute',
                    'levels'=>'error, warning',
                ),
                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class'=>'CWebLogRoute',
                ),
                */
            ),
        ),
    ),

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params'=>array(
        // this is used in contact page
        'adminEmail'=>'webmaster@example.com',
    ),
);

那么请有人指导我需要做哪些改变?

4

1 回答 1

1

你说你正在使用MySQL。所以你的配置中的 sqlite 行不会出现。假设这些表已经在你的 MySql 数据库中创建(我猜你可以在 MySQL Workbench 或 PHPMyAdmin 中看到它们):

  • 删除此行
  • 重新运行模型/CRUD/任何一代。

如果您的连接字符串和参数没问题,它应该可以工作。

如果没有,请随意复制相关的错误日志:Yii、MySql 和 Apache 的日志可以包含有用的信息。

于 2013-03-03T09:38:17.507 回答