yii数据库查询
A. yii操作数据库时若数据库的字段名是数据库的关键字怎么解决
给关键字加上 `关键字` ,就好了
一、执行原生太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', 'u.id=p.user_id')
->where('id=:id', array(':id'=>$id))
->queryRow();
B. 如何查看yii2数据库是否连成功
第一查看config里面的数据库配置 是否选择的是mysql 第二数据库的账号密码是否正确
C. yii框架查询数据query怎么用
yii框架查询数据query怎么用
Yii框架操作AR-Query篇 数据库表Table: 数据查询Query: 查询一条数据 find(...返回的数据是AR,如果需要使用数组可以使用 Return $manage->attributes;
D. Yii2如何实现跨mysql数据库关联查询排序
// 默认是这样的public static function tableName(){ return 'user_stat';} public static function getDb(){ return Yii::$app->get('dbStat');}// 为了提高代码稳定性,可以这样写public static function tableName(){ preg_match("/dbname=([^;]+)/i", static::getDb()->dsn, $matches); return $matches[1].'.user_stat';} public static function getDb(){ return Yii::$app->get('dbStat');}
E. yii2数据库查询
执行:
Yii::$app->getDb()->createCommand("Your SQL")->execute();
查询:
Yii::$app->getDb()->createCommand("Your SQL")->queryAll();
其他:
Yii::$app->getDb()->createCommand("Your SQL")->xxx
F. Yii2框架操作数据库的方法分析【以mysql为例】
本文实例讲述了Yii2框架操作数据库的方法。分享给大家供大家参考,具体如下:
准备数据库
DROP
TABLE
IF
EXISTS
`pre_user`;
CREATE
TABLE
`pre_user`(
`id`
int(11)
AUTO_INCREMENT
PRIMARY
KEY,
`username`
varchar(255)
NOT
NULL,
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
`password_hash`
varchar(255)
NOT
NULL
DEFAULT
'',
`email`
varchar(255)
NOT
NULL
DEFAULT
'',
`status`
smallint(6)
NOT
NULL
DEFAULT
10,
`created_at`
smallint(6)
NOT
NULL
DEFAULT
0,
`updated_at`
smallint(6)
NOT
NULL
DEFAULT
0
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8mb4;
配置连接
config\db.php
<?php
return
[
'class'
=>
'yii\db\Connection',
'dsn'
=>
'mysql:host=localhost;dbname=yii2',
'username'
=>
'root',
'password'
=>
'root',
'charset'
=>
'utf8mb4',
'tablePrefix'
=>
'pre_'
];
查看数据库连接是否成功
控制器里打印:
var_mp(\Yii::$app->db);
怎么执行SQL语句?
增删改
//
接收表单的数据
$username
=
'jack';
$sql
=
"INSERT
INTO
{{%user}}
(username,status)
VALUES
(:username,:status)";
//
返回受影响行数
$row
=
\Yii::$app->db->createCommand($sql,['username'=>$username,'status'=>8])->execute();
//
获取自增ID
echo
\Yii::$app->db->getLastInsertID();
查询
$sql
=
"SELECT
*
FROM
{{%user}}
WHERE
id>:id";
//
查询结果是一个二维数组
$userArr
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryAll();
//
如果要查询一个
$user
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryOne();
//
如果要返回单值
//
例如
select
count(*)语句
$count
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryScalar();
echo
$count;
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:Yii2.0高级框架数据库增删改查的一些操作Yii2——使用数据库操作汇总(增删查改、事务)Yii2数据库操作常用方法小结Yii2框架实现数据库常用操作总结Yii2实现跨mysql数据库关联查询排序功能代码Yii+MYSQL锁表防止并发情况下重复数据的方法Yii
连接、修改
MySQL
数据库及phpunit
测试连接Yii实现MySQL多数据库和读写分离实例分析Yii操作数据库实现动态获取表名的方法Yii操作数据库的3种方法
G. Yii2怎么执行原生sql语句查询
Database Exception – yii\db\Exception
PDOStatement::fetchAll() expects parameter 1 to be long, string given
The SQL being executed was: select * from hd_article where aid<31 order by aid desc limit 1
↵
Caused by: yii\base\ErrorException
PDOStatement::fetchAll() expects parameter 1 to be long, string given
in D:\WWW\web\vendor\yiisoft\yii2\db\Command.php at line 848
H. yii数据库查询和数据输出问题:现在有表a和b,需要查询出a中x日发布的内容和b中x日发布的内容,然后输出
参考 59、一只野兽受了伤,它可以自己跑到一个山洞躲起来,然后自己舔舔伤口,自己坚持,可是一旦被嘘寒问暖,它就受不了。