加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – sprintf的论点太少了

发布时间:2020-12-13 22:07:59 所属栏目:PHP教程 来源:网络整理
导读:我以前做了很多次,重新使用传递给sprintf()函数的值.但是这段代码返回了一个“警告:sprintf()[function.sprintf]:……中的参数太少了”. 这是代码: $search_clause = sprintf(" (msgBody LIKE %%%1$s%% OR msgSubject LIKE '%%%1$s%%' ) ",mysql_real_esc
我以前做了很多次,重新使用传递给sprintf()函数的值.但是这段代码返回了一个“警告:sprintf()[function.sprintf]:……中的参数太少了”.

这是代码:

$search_clause = sprintf(" (msgBody LIKE %%%1$s%% OR msgSubject LIKE '%%%1$s%%' ) ",mysql_real_escape_string($match1));

理想情况下,$match1的值将被插入到上面显示的SQL WHERE子句的段中 – 两次,每次由’%’字符包装以进行通配符搜索.

如果$match1 =“test”,结果字符串值$search_clause将是:

(msgBody LIKE '%test' OR msgSubject LIKE '%test%' )

我正在犯的明显错误是什么?

解决方法

$s可能被解释为变量(见 variable expansion).请尝试使用单引号:

$search_clause = sprintf(' (msgBody LIKE "%%%1$s%%" OR msgSubject LIKE "%%%1$s%%" ) ',mysql_real_escape_string($match1));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读