为什么sprintf在这里返回false?

时间:2013-05-15 03:09:10

标签: php printf string-parsing

我想弄清楚为什么sprintf在这里返回false。任何人都可以放弃任何光明吗?

sprintf( "select dog_name, date_format(meet_date, '%D %M %Y') as date, track_name, race_name, race_stakes, race_class, race_stakes, result_place, result_box, winner_name, winner_id, result_dog_trainer, race_distance
                                from dog
                                join result using( dog_id )
                                join race r using( race_id )
                                join meet using( meet_id )
                                join track using( track_id ) 
                                join (select dog_name as winner_name, dog_id as winner_id, race_id 
                                        from dog
                                        join result using( dog_id )
                                        where result_place = 1                                    
                                        ) t0 on t0.race_id = r.race_id
                                where dog_id = %d
                                    order by meet_date desc
                                limit %d", 12345, 50);

1 个答案:

答案 0 :(得分:7)

你的论点太少了。如果您将sprintf()date_format一起使用,则应使用两个%,如下所示:

sprintf( "select dog_name, date_format(meet_date, '%%D %%M %%Y') as date, track_name, race_name, race_stakes, race_class, race_stakes, result_place, result_box, winner_name, winner_id, result_dog_trainer, race_distance
                                from dog
                                join result using( dog_id )
                                join race r using( race_id )
                                join meet using( meet_id )
                                join track using( track_id ) 
                                join (select dog_name as winner_name, dog_id as winner_id, race_id 
                                        from dog
                                        join result using( dog_id )
                                        where result_place = 1                                    
                                        ) t0 on t0.race_id = r.race_id
                                where dog_id = %d
                                    order by meet_date desc
                                limit %d", 12345, 50);

这是PHPFiddle