php t_constant_encapsed_string,解析错误:语法错误,意外'', - 2),''(T_CONSTANT_ENCAPSED_STRING),期待','或';'...

本文介绍了如何在复杂的SQL查询中使用Heredoc语法提高代码的可读性,特别是在处理包含双引号的字符串时。通过将常量存储在变量中并利用Heredoc结构,可以使得SQL查询更加清晰易懂。示例中展示了如何构造一个左连接查询,涉及用户表、用户元数据表和状态表,并进行了特定条件的筛选。
摘要由CSDN通过智能技术生成

问题是这部分:

" avatar,substring_index(substring_index(wp_usermeta.meta_value ,'"',-2),'"',1) role from " .double-quoted string中有双引号。那些必须使用反斜杠进行转义:

" avatar,substring_index(substring_index(wp_usermeta.meta_value ,'\"',-2),'\"',1) role from " .但是,在构造这样的复杂字符串时,我强烈建议您使用Heredoc语法来提高可读性。它可能看起来像这样:

$utable = TABLE_PREFIX.DB_USERTABLE;

$uid = DB_USERTABLE_USERID;

$uname = DB_USERTABLE_NAME;

$atable = DB_AVATARTABLE;

$afield = DB_AVAYATFIELD;

echo <<<_>

select $utable.$uid

userid, $utable.$uname

username, $utable.$uname

link, $afield

avatar,substring_index(substring_index(wp_usermeta.meta_value ,'"',-2),'"',1)

role from $utable

left join wp_usermeta on $utable.$uid = wp_usermeta.user_id

left join cometchat_status on $utable.$uid = cometchat_status.userid $atable

where

(select count(*) from wp_bp_friends

where (initiator_user_id='$userid' and friend_user_id=wp_users.ID)

or (initiator_user_id=wp_users.ID and friend_user_id='$userid')

)=1

and wp_usermeta.meta_key = 'wp_capabilities' order by username asc

_;请注意,constants未在Heredoc中展开,因此您必须先将它们存储在变量中。

如果您愿意,可以将结束标识符(_)替换为更具可读性的标识符,例如ENDSQL或类似内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值