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 数据库相关 *** 作怎么对表加行级锁等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)