Yii框架操作数据库的几种方式与mysql_escape_string
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方式
也可以使用
$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已经添加验证)。
- 上一篇: 给定ASCII码,输出对应字符
- 下一篇: 解决w3wp.exe内存占用问题