2011-04-16 168 views

回答

1

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

$sql = sprintf($sql, "Test"); 

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

10

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

这是当你不想摆弄引号和双引号是非常有用的。

+0

良好的通话,我将不得不用'LIKE“一读%s''困惑它。 – briantyler 2011-04-16 13:54:47

1

我猜%s是sprintf的格式符号。

的下一行代码可以是某物那样:

$sqlquery = sprintf($sql, 'mySearchString'); 

实时查询将是:

SELECT * FROM page_table WHERE PAGE_NAME = 'mySearchString' LIMIT 1

0

我们使用%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 2 O P Qř式T U V W X YŽ