yii数据库中无法找到 active record class "Experts" 对应的 table "".

yii数据库中无法找到 active record class "Experts" 对应的 table "".,第1张

Experts Model类没有找到对应的数据库

首先看Experts Model类中的一个方法

类似是public function tableName(){}

里面定义了数据库表,然后你看看你数据库是否有这个表

就差不多是这么回事了。

看你数据库的参数配置是否正确(请确认参数没错)

看你的AdminUser类,里面有个tableName的方法:返回表名的!!!你看看那个方法返回的表名是不是你数据库的表名(一致才行!!!)

一、执行原生太SQL的PDO方式。搜索

复制代码代码如下:

$sql = "";//原生态sql语句

xx::model()->dbConnection->createCommand($sql)->execute();

二、Active Record方式

(1)New 方式

复制代码代码如下:

$post=new Post;

$post->title='sample post';

$post->content='post body content';

$post->save();

(2)Criteria方式

也可以使用 $condition 指定更复杂的查询条件。 不使用字符串,我们可以让 $condition 成为一个 CDbCriteria 的实例,它允许我们指定不限于 WHERE 的条件。

复制代码代码如下:

$criteria=new CDbCriteria;

$criteria->select='title'; // 只选择 'title' 列

$criteria->condition='postID=:postID';

$criteria->params=array(':postID'=>10);

$post=Post::model()->find($criteria);

一种替代 CDbCriteria 的方法是给 find 方法传递一个数组。 数组的键和值各自对应标准(criterion)的属性名和值,上面的例子可以重写为如下:

复制代码代码如下:

$post=Post::model()->find(array(

'select'=>'title',

'condition'=>'postID=:postID',

'params'=>array(':postID'=>10),

));

当一个查询条件是关于按指定的值匹配几个列时,我们可以使用 findByAttributes()。我们使 $attributes 参数是一个以列名做索引的值的数组。在一些框架中,此任务可以通过调用类似 findByNameAndTitle 的方法实现。虽然此方法看起来很诱人,但它常常引起混淆、冲突和比如列名大小写敏感的问题。

三、Query Builder 方式

复制代码代码如下:

$user = Yii::app()->db->createCommand()

->select('id, username, profile')

->from('tbl_user u')

->join('tbl_profile p', 'uid=puser_id')

->where('id=:id', array(':id'=>$id))

->queryRow();

开始使用数据库首先需要配置数据库连接组件,通过添加 db 组件到应用配置实现("基础的" Web 应用是 config/webphp),DSN( Data Source Name )是数据源名称,用于指定数据库信息如下所示:return [

//

'components' => [

//

'db' => [

'class' => 'yii\db\Connection',

'dsn' => 'mysql:host=localhost;dbname=mydatabase', // MySQL, MariaDB

//'dsn' => 'sqlite:/path/to/database/file', // SQLite

//'dsn' => 'pgsql:host=localhost;port=5432;dbname=mydatabase', // PostgreSQL

//'dsn' => 'cubrid:dbname=demodb;host=localhost;port=33000', // CUBRID

//'dsn' => 'sqlsrv:Server=localhost;Database=mydatabase', // MS SQL Server, sqlsrv driver

本文实例讲述了Yii *** 作数据库实现动态获取表名的方法。分享给大家供大家参考,具体如下: yii 获取某个库中的表名,而且这个库不确定表的多少,此时没法按照gii去根据表去生成文件,这里有个方法去解决掉。 $sqls = "show tables"; $datebase = YII::app()->db_order->createCommand($sqls)->queryAll(); //获取表名 这里$datebase 就是所有的表名,我当前有4个库,一个网站公用这4个库,有时候会来回切换。db_order为mainphp中定义的4个库中的一个,其他库分别为db db_order db_query db_log 然后你就可以把这个库中的所有表中的数据获取到。而不用去生成。 该方法一般用于游戏平台,比如我当前有一个库专门去存放订单的,呢么这个库架设是db_order 此时我就需要把当某个用户的所有充值的记录(订单)获取到 更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库 *** 作入门教程》及《php常见数据库 *** 作技巧汇总》 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

用alter语句 如果数据库已经有数据表了, 那每个表都要修改 (修改数据库的字符集不会改变原有数据表的字符集)utf8:ALTER DATABASE `数据库` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE `数据表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci gbk (包含gb2312):ALTER DATABASE `数据库` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci ALTER TABLE `数据表` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci

以上就是关于yii数据库中无法找到 active record class "Experts" 对应的 table "".全部的内容,包括:yii数据库中无法找到 active record class "Experts" 对应的 table "".、YII框架,数据库连接出现问题、yii 数据库相关 *** 作怎么对表加行级锁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9866932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存