设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
$this->db->select('1', FALSE)是什么用法,为了安全? ...
返回列表
查看:
5115
|
回复:
4
$this->db->select('1', FALSE)是什么用法,为了安全?
[复制链接]
viqecel
viqecel
当前离线
积分
276
IP卡
狗仔卡
发表于 2013-7-10 08:44:37
|
显示全部楼层
|
阅读模式
PHP
复制代码
function
is_email_available
(
$email
)
{
$this
->
db
->
select
(
'1'
,
FALSE
)
;
$this
->
db
->
where
(
'LOWER(email)='
,
strtolower
(
$email
)
)
;
$this
->
db
->
or_where
(
'LOWER(new_email)='
,
strtolower
(
$email
)
)
;
$query
=
$this
->
db
->
get
(
$this
->
table_name
)
;
return
$query
->
num_rows
(
)
==
0
;
}
复制代码
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
qi_ruo
qi_ruo
当前离线
积分
2115
IP卡
狗仔卡
发表于 2013-7-10 08:52:50
|
显示全部楼层
为了提高效率吧,因为如果没有select子句,CI会为你加载所有字段,但这里的情况是只需要获取行数就可以了,不需要选择任何字段,所以加了个select 1,当然也可以使用 $this->db->count_all_results() 直接获取行数。
回复
支持
反对
使用道具
举报
显身卡
viqecel
viqecel
当前离线
积分
276
IP卡
狗仔卡
楼主
|
发表于 2013-7-10 09:29:08
|
显示全部楼层
本帖最后由 viqecel 于 2013-7-10 09:32 编辑
PHP
复制代码
SELECT
COUNT
(
*
)
FROM `table` WHERE `column`
=
"value"
复制代码
也可以这样对吧.
那select 1 这种写法,依据是什么?聚集函数吗.1表示重命名的一个字段吗.他的作用我理解了,不是返回什么记录,只是返回记录数.
回复
支持
反对
使用道具
举报
显身卡
┌._|.泉
┌._|.泉
当前离线
积分
104
IP卡
狗仔卡
发表于 2013-7-10 10:31:51
|
显示全部楼层
减少字段
回复
支持
反对
使用道具
举报
显身卡
gogogo1027
gogogo1027
当前离线
积分
267
IP卡
狗仔卡
发表于 2013-7-10 16:40:29
|
显示全部楼层
本帖最后由 gogogo1027 于 2013-7-10 16:44 编辑
这个语法可接受一个可选的第二个参数。如果你把它设为FAL
S
E, CodeIgniter 将不会使用反引号保护你的字段或者表名。这在进行复合查询时很有用。
正常情况下
PHP
复制代码
$this
->
db
->
select
(
'title, content, date'
)
;
$query
=
$this
->
db
->
get
(
'mytable'
)
;
// Produces: SELECT title, content, date FROM mytable
复制代码
假如你使用复合查询,则将它第二个参数设置为FALSE,避免它把你的select()包含的SQL当成是一个字段来格式化。
PHP
复制代码
$this
->
db
->
select
(
"('SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid"
,
FALSE
)
;
$query
=
$this
->
db
->
get
(
'mytable'
)
;
复制代码
符合查询的时候才用到,默认则不需要。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页