%s在这里意味着什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了%s在这里意味着什么?相关的知识,希望对你有一定的参考价值。

%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'才能更好地理解你可以使用for循环从65到91开始在这个for循环打印结果中使用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";

以上是关于%s在这里意味着什么?的主要内容,如果未能解决你的问题,请参考以下文章

Android从后台堆栈中删除事务

对onActivityCreated片段回调有啥误解吗?

简单的方法来分享/讨论/协作的代码片段?

vs2003:快速片段工具

Android 片段生命周期

为啥这个代码片段说包含错误?