我以前做了很多次,重新使用传递给sprintf()函数的值.但是这段代码返回了一个"警告:sprintf()[function.sprintf]:......中的参数太少了".
这是代码:
$search_clause = sprintf(" (msgBody LIKE %%%1$s%% OR msgSubject LIKE '%%%1$s%%' ) ", mysql_real_escape_string($match1));
Run Code Online (Sandbox Code Playgroud)
理想情况下,$ match1的值将被插入到上面显示的SQL WHERE子句的段中 - 两次,每次由'%'字符包装以进行通配符搜索.
如果$ match1 ="test",则$ search_clause的结果字符串值为:
(msgBody LIKE '%test' OR msgSubject LIKE '%test%' )
Run Code Online (Sandbox Code Playgroud)
我正在犯的明显错误是什么?
Gum*_*mbo 12
在$s大概得到解释为变量(见变量扩展).请尝试使用单引号:
$search_clause = sprintf(' (msgBody LIKE "%%%1$s%%" OR msgSubject LIKE "%%%1$s%%" ) ', mysql_real_escape_string($match1));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17791 次 |
| 最近记录: |