一、Yii操作数据库的几种选择
1,PDO方式。
$sql
= "";//原生态sql语句
xx::model()->dbConnection->createCommand($sql)->execute();
2,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 的方法实现。虽然此方法看起来很诱人, 但它常常引起混淆,冲突
和比如列名大小写敏感的问题。
3,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();
二、Yii操作数据库的几种选择与mysql_escape_string方法
mysql_escape_string是转义sql中的特殊字符。
1,创建记录时
当直接执行sql时,需要加mysql_escape_string方法。
当使用yii框架式,不需要加(因为Yii已经添加验证)。
2,查询记录时
当直接执行sql时,需要加mysql_escape_string方法。
当使用yii框架式,如果在find中直接拼接sql,则也需要添加,如果使用param数组方式,不需要加(因为Yii已经添加验证)。
相关文章
- 04-19Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- 04-19014.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以对象的方式返回查询结果
- 04-19php框架内的数据库操作(微擎,tp,yii2)
- 04-19Yii框架操作数据库的几种方式与mysql_escape_string
- 04-19Django框架操作数据库的两种方式
- 04-19014.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以对象的方式返回查询结果
- 04-19Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- 04-19Django操作数据库查询的几种方式
- 04-19flask框架--设置配置文件的几种方式 与Flask两种配置路由的方式
- 04-19Yii2.0高级框架数据库增删改查的一些操作(转)