使用PHP的vsprintf()函数,提示 "too few arguments"(缺少参数),但是我只写了2个占位符,也相应的传递了两个变量。代码如下:
$sql = "select * from a where id=%u and age=%u and name like '123%'";
$id=1; $age=12;
$result = vsprintf($sql,array($id,$age));
经查询,发现php把like里的%也认作是占位符了,假如不是占位符,则使用2个%%即可
$sql = "select * from a where id=%u and age=%u and name like '123%%'";
$id=1; $age=12;
$result = vsprintf($sql,array($id,$age));
- %% - 返回百分比符号
- %b - 二进制数
- %c - 依照 ASCII 值的字符
- %d - 带符号十进制数
- %e - 可续计数法(比如 1.5e+3)
- %u - 无符号十进制数
- %f - 浮点数(local settings aware)
- %F - 浮点数(not local settings aware)
- %o - 八进制数
- %s - 字符串
- %x - 十六进制数(小写字母)
- %X - 十六进制数(大写字母)