%s
是什么意思?
$sql = "SELECT *
FROM page_table
WHERE page_name = '%s'
LIMIT 1";
它是一个格式化字符串,其中%s
是占位符。我怀疑$sql是交给sprintf将其转换为一个真正的查询的。示例:
$name = 'posts';
$sql = "SELECT * FROM page_table WHERE page_name = '%s' LIMIT 1";
$formattedSql = sprintf($sql, $name);
这将生成一个查询,看起来像:
SELECT * FROM page_table WHERE page_name = 'posts' LIMIT 1
当你不想摆弄引号和双引号时,这非常有用。
%s
是sprintf等函数中使用的占位符。查看手册中其他可能的占位符。
$sql = sprintf($sql, "Test");
这将用字符串"Test"替换%s
。它还用于确保传递的参数实际适合占位符。您可以使用%d
作为数字的占位符,但如果sprintf收到一个字符串,它会抱怨。
我想%s是sprintf的一个格式符号。
下一行代码可能是这样的:
$sqlquery = sprintf($sql, 'mySearchString');
真正的查询是:
SELECT*FROM page_table WHERE page_name='mySearchString'LIMIT 1
我们使用%s作为字符代码,因为ASCII 65是"A",所以在91"Z"之前,为了更好地理解,您可以使用从65到91的循环,其中使用printf 的循环打印结果
for($i=65; $i<91; $i++){
printf('%s ', chr($i));
}
上面将打印
A B C D E F G H I J K L M N O p Q R S T U V W X Y Z
$sql = "SELECT *
FROM page_table
WHERE page_name = '%s'
LIMIT 1";
$sql = sprintf($sql, "page");
会给你这样的东西。
$sql =select * from page_table where page_name='page' LIMIT 1";