ktm*_*ktm 3 php mysql sql printf
什么%s
意思?
$sql = "SELECT *
FROM page_table
WHERE page_name = '%s'
LIMIT 1";
Run Code Online (Sandbox Code Playgroud)
它是一个格式化的字符串,其中%s
是一个占位符.我怀疑$ sql被交给sprintf将其转换为真正的查询.例:
$name = 'posts';
$sql = "SELECT * FROM page_table WHERE page_name = '%s' LIMIT 1";
$formattedSql = sprintf($sql, $name);
Run Code Online (Sandbox Code Playgroud)
这将生成一个查询,如下所示:
SELECT * FROM page_table WHERE page_name = 'posts' LIMIT 1
Run Code Online (Sandbox Code Playgroud)
当你不想弄乱引号和双引号时,这非常有用.
%s
是在sprintf等函数中使用的占位符。检查手册以了解其他可能的占位符。
$sql = sprintf($sql, "Test");
Run Code Online (Sandbox Code Playgroud)
这将替换%s
为字符串“Test”。它还用于确保传递的参数实际上适合占位符。您可以用作%d
数字的占位符,但如果 sprintf 收到一个字符串,它会抱怨。