%s在这里意味着什么?

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)

ale*_*exn 9

它是一个格式化的字符串,其中%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)

当你不想弄乱引号和双引号时,这非常有用.


hal*_*dan 3

%s是在sprintf等函数中使用的占位符。检查手册以了解其他可能的占位符。

$sql = sprintf($sql, "Test");
Run Code Online (Sandbox Code Playgroud)

这将替换%s为字符串“Test”。它还用于确保传递的参数实际上适合占位符。您可以用作%d数字的占位符,但如果 sprintf 收到一个字符串,它会抱怨。